2009-07-08 9 views
1

KeyValuePair要素をDictionaryからItemsControlにバインドしようとしています。 私の辞書には、15個の要素を持っており、次のコードは、私の15件のTextBoxを示しています。C#/ WPFのItemsControlにバインドする

<WrapPanel Name="PersonsWrapPanel" Grid.Row="0"> 
    <ItemsControl ItemsSource="{Binding Persons}" > 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <WrapPanel Orientation="Horizontal" Width="auto"> 
       </WrapPanel> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
        <TextBox Text="{Binding Value.Text}"></TextBox> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</WrapPanel> 

残念ながら(キーまたは値になります)任意のテキストボックスの内容なしに。 アイデア

答えて

3

おそらく辞書の値に直接結合してみてください:

ItemsSource="{Binding Persons.Values}" 

私が正しくあなたのXAMLを理解していた場合は、辞書内の各オブジェクトは、バインドしようとしていると「テキスト」と呼ばれるフィールドを持っています。そう、あなたが上記の変更を加えた場合は、同様にあなたのDataTemplateを変更する必要があります:

<TextBox Text="{Binding Text}" /> 

詳細はthis articleを参照してください。 HTH。

0

[key、value]と[string、string]の両方を定義したRowValuesという辞書があるとしましょう。

今、この辞書の値ペアにバインドするために、次の操作を行うことができます

<TextBlock Text="{Binding}"/> 
:テキスト(値)を表示するには

<ItemsControl ItemsSource="{Binding RowValues.Values}" > 

、あなたのようにバインドすることができます

関連する問題