我有~30个控件,每个控件都有相同的型号。我希望,而不是绑定约30个属性和约30个私有变量,绑定到数组,允许我也循环属性
例如,
说我有以下(这只是一个例子)
public class MyImage
{
public String source { get; set;}
public String tooltip { get; set;}
}
XAML
<Grid>
<Image Name="image0" Source="{Binding MyImage0.source"}/>
<Image Name="image1" Source="{Binding MyImage1.source"}/>
<Image Name="image2" Source="{Binding MyImage2.source"}/>
...
</Grid>
我想要那个XAML
文件的instaead,让源代码像MyImages[0].source
一样
所以我也可以循环它并在运行时设置它而不必写MyImage0.source="mysource"
答案 0 :(得分:5)
我建议如下:
拥有MyImage类型的集合,如:
public ObservableCollection<MyImage> MyImageCollection { get; set; }
然后在视图中使用DataTemplate和ItemsControl:
<Grid>
<ItemsControl ItemsSource="{Binding MyImageCollection}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding source}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>