2016-04-27 13 views
1

私は30個のコントロールを持っていますが、それぞれ同じモデルです。私はWPF配列/コレクションにバインドする

それはちょうどだ(私は、次のしたとし、またexamleのプロパティ

上のループに私をできるように、配列にバインドするために、代わりに〜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> 

私はMyImages[0].sourceのようなものとして、ソースを持っているために、そのXAMLファイルのinstaeadをしたいです ので、私はそれをループして、私は次のことを示唆しているMyImage0.source="mysource"

+3

「ItemsSource」を「MyImage」のコレクションに設定して「ItemsControl」を使用することを検討してください。 'objects – ASh

+0

しかし、どうすればそれにバインドできますか? –

+0

MyImage0、MyImage1、MyImage2を単一の要素コレクションに入れることはできませんか?彼らが同じクラスであれば、それは問題ではないはずです。 – mikes

答えて

5

を記述する必要があり、実行時にそれを設定しないこともできます。その後、

public ObservableCollection<MyImage> MyImageCollection { get; set; } 

と:

のようなタイプMYIMAGEのコレクションを持ちます

<Grid> 
    <ItemsControl ItemsSource="{Binding MyImageCollection}"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Image Source="{Binding source}" /> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</Grid> 
+0

ありがとう、 私はそれを試してみましょう –