2016-04-27 193 views
1

我有~30个控件,每个都有相同的模型。我想,而不必〜30个属性的绑定和〜30个私有变量绑定到一个数组,让我也来循环的特性WPF绑定到数组/集合

对于examle,

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

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"

+3

考虑使用带'ItemsSource'的'ItemsControl'设置为'MyImage '对象 – ASh

+0

但是,我会如何绑定它? –

+0

无法将MyImage0,MyImage1,MyImage2放入单个元素集合中吗?如果他们是同一个班级,那么不应该是个问题。 – mikes

回答

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> 
+0

谢谢, 我会试试看 –