質問

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

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

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

役に立ちましたか?

解決 2

私はこのラインを使用して、それを解決しました

  <TextBox Text="{Binding Value, Mode=OneWay}"></TextBox>  

HTTP上のコード://www.dev102.com/2008/03/07/binding-a-wpf-control-to-a-dictionary/ には動作していないようです。

他のヒント

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

ItemsSource="{Binding Persons.Values}"
私が正しくあなたのXAMLを理解していた場合は、

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

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

この記事を参照してください詳細は。 HTHます。

私たちはあなたのように定義された[キー、値]の両方で、辞書RowValuesと呼ばあるとしましょう[文字列、文字列]ます。

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

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

テキスト(値)を表示するには、次のようにバインドすることができます:

<TextBlock Text="{Binding}"/>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top