我正在动态填充listView,因此我将每个文本框绑定到一个属性。我有类似的东西:
System.Windows.FrameworkElementFactory f = new System.Windows.FrameworkElementFactory(typeof(System.Windows.Controls.TextBlock));
f.SetValue(System.Windows.Controls.TextBox.FontWeightProperty, System.Windows.FontWeights.Normal);
Binding myBinding = new Binding("SomeProperty");
f.SetBinding(System.Windows.Controls.TextBlock.TextProperty, myBinding);
如果列表视图中填充了一个对象Animal,并且该类具有名为SomeProperty的属性,则listview中的该列将包含SomeProperty的值。我想要做的是绑定到一个字符串数组,例如。假设我有相同的类Animal,当我做一些新的Binding(“array [1]”)它没有绑定时,动物有一个字符串数组。它只在我对一个财产这样做时才会绑定。或者也许有一种制作属性数组的方法。如果我可以将数据绑定到数组索引
,那将会很好答案 0 :(得分:0)
首先你的收藏应该是
ObservableCollection<string> Animals
{
get;
set;
}
如果您想动态设置列表视图,则更容易理解:
<ListView ItemsSource="{Binding Animals}">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Height="20" Width="100"></TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
并且您的dataContext应该设置为具有Animals属性的类, 如果你真的想在C#中尝试使用ObservableCollection,但我真的建议这个解决方案