WPF绑定到数组/集合

La *_*bla 1 c# wpf xaml

我有~30个控件,每个都有相同的型号.我希望,而不是绑定约30个属性和约30个私有变量,绑定到一个数组,允许我循环属性

例如,

说我有以下(这只是一个例子)

public class MyImage
{
    public String source { get; set;}
    public String tooltip { get; set;}
}
Run Code Online (Sandbox Code Playgroud)

XAML

<Grid>
    <Image Name="image0" Source="{Binding MyImage0.source"}/>
    <Image Name="image1" Source="{Binding MyImage1.source"}/>
    <Image Name="image2" Source="{Binding MyImage2.source"}/>
    ...
</Grid>
Run Code Online (Sandbox Code Playgroud)

我想要该XAML文件的instaead,让源代码像MyImages[0].source 这样我也可以循环它并在运行时设置它而不必写MyImage0.source="mysource"

Fre*_*rin 5

我建议如下:

拥有MyImage类型的集合,如:

public ObservableCollection<MyImage> MyImageCollection { get; set; }
Run Code Online (Sandbox Code Playgroud)

然后在视图中使用DataTemplate和ItemsControl:

<Grid>
    <ItemsControl ItemsSource="{Binding MyImageCollection}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Image Source="{Binding source}" />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</Grid>
Run Code Online (Sandbox Code Playgroud)