2009-09-08 7 views
11

私はこの性質を持っている:リスト<string>をItemsControlにバインドするにはどうすればよいですか?私のプレゼンターで

public List<string> PropertyNames { get; set; } 

そして、私はこのようなItemsControlに/ DataTemplateを持つ名アウトリストする:一般的なリストは、プロパティの名前がありませんので

<ItemsControl ItemsSource="{Binding PropertyNames}"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Value}"/> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

をどのようにしての値をBindingステートメントで参照しますか?

答えて

29

私にこれを答えさせてください。それはちょうど{Binding}です。

<ItemsControl ItemsSource="{Binding PropertyNames}"/> 

デフォルトでは、これが垂直のStackPanelを作成し、独自のTextBlock内の各要素を追加します。

+0

+1。うん。私はそれをドットが動作する 'Path = ...'と混同しました。 –

+9

FYI、 '。' 'Path ='の有無にかかわらず動作します。ブランクは暗黙的に '。'と解釈されます。 {Binding}、{Binding。}、{Binding Path =。}を書くことができます。{Binding Path =}は動作しません.XAMLコンパイラエラーが発生します。 –

+2

haha​​。質問は11:15に尋ねられ、ちょうど1分後に全く同じ人が答えました。それから答えは受け入れられる:)よくやった。 –

0

同じことを実現する簡単な方法は、単純に使用することです。 MSDNによれば、これは以下のいずれかで動作します。

  • 文字列です。
  • DateTimeオブジェクトです。
  • UIElementオブジェクトです。
  • 楕円とTextBlockを含むPanelコントロール。
関連する問題