wpfの新機能です。リストボックスを作成して動的リストアイテムを作成しました。ここでは、2つのテキストブロックである2つのコントロールを含むdatetemplateを使用しました。値はコンボボックス(文字列データ型)を形成し、もう1つはコードバインドから値をバインドします。このクラスのwpfのデータ型コントロールへの値をバインドする
XAML
<ListBox ItemsSource="{Binding obj}" HorizontalContentAlignment="Left" x:Name="lstbxindex" SelectionMode="Extended" Foreground="White" FontSize="20px" Height="201" BorderBrush="#555555" Margin="80,40,0,0" VerticalAlignment="Top" Width="282" Background="#555555" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="5" >
<TextBlock Height="40px" Width="80px" Text="{Binding roundedhourvalue, FontSize="24" Background="#555555" Foreground="White"></TextBlock>
<TextBlock x:Name="items" Text="{Binding}" Margin="35,0,0,0"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
C#(Roundedhour.cs)
public class Roundedhour
{
public string hourvalue { get; set; }
public override string ToString()
{
return string.Format("{0}", hourvalue);
}
}
hourvalueのプロパティを作成します。このクラスでは、コードビハインドファイルにオブジェクトを作成しました。このオブジェクトは、次のように記述しました。オブジェクトを作成し、hourvalue変数の値を割り当てます。ここ
C#(コードビハインド)
{
if (dispatcherTimer1.Interval == TimeSpan.FromSeconds(15))
{
//lstbxindex.Items.Add(lstbxindex.SelectedItem.ToString());
string hrvalue = Convert.ToString(hrvalueinitially);
obj = new Roundedhour();
obj.hourvalue = Convert.ToString(hrvalueinitially);
string roundedhourvalue =obj.hourvalue;
this.DataContext = this;
//lblprojectAhr.Content = string.Join(",", hrvalueinitially + "" + "hr");
}
}
、Iはそのプロパティ時間値にRounderhour class.Assign値のオブジェクトを作成しました。しかし、コードバインドからXAMLページに値をバインドすることはできません。
あなたの 'DataContext'は' {get;}を含む 'public'プロパティを持つ必要があります。 }(getter) 'を呼び出して、あなたの' Binding'から値を取り出します。また、 'Roundedhour'のプロパティは' roundedhourvalue'ではなく 'timevalue'と呼ばれます。 **バインディングの問題がある場合、VisualStudioの 'Output'-Windowを常にチェックしてください。** - そこには何が欠落しているかがわかります。 –