我有大约 30 个控件,每个控件都具有相同的模型。我不想绑定(bind) ~30 个属性和 ~30 个私有(private)变量,而是绑定(bind)到一个数组,这样我也可以在属性上循环
例如,
假设我有以下内容(这只是一个例子)
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
文件,让源代码像 MyImages[0].source
所以我也可以遍历它并在运行时设置它而不必编写 MyImage0.source="mysource"
最佳答案
我建议如下:
有一个 MyImage 类型的集合,例如:
public ObservableCollection<MyImage> MyImageCollection { get; set; }
然后在您的 View 中使用 DataTemplate 和 ItemsControl:
<Grid>
<ItemsControl ItemsSource="{Binding MyImageCollection}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding source}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
关于c# - WPF 绑定(bind)到数组/集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36890098/