的DataTemplate控制我新的WPF中,我創建了一個列表框,將創建一個動態listItems中,在這裏,我用datetemplate其中包含兩個控件是二的TextBlocks,一個含有的TextBlocks綁定值形成組合框(它是字符串數據類型),另一個是綁定代碼綁定的值。從綁定代碼背後的價值是在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");
}
}
在這裏,我創建Rounderhour class.Assign值的對象來表示屬性小時值。但我無法將codebind的值綁定到XAML頁面。
你的'DataContext'需要一個'public'屬性包含'{get; }(getter)'從你的'Binding'中獲取值。還要注意'Roundedhour'中的屬性叫做'hourvalue'而不是'roundhourvalue'。 **當發生綁定問題時,請務必在VisualStudio中檢查'輸出'窗口。** - 在那裏您將看到缺少的地方... –