WPF绑定到数组/集合

时间:2016-04-27 12:39:45

标签: c# wpf xaml

我有~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"

1 个答案:

答案 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>