3

我正在尝试将字典中的 KeyValuePair 元素绑定到 ItemsControl。我的字典有 15 个元素,下面的代码显示了 15 个文本框:

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

不幸的是没有任何文本框内容(这将是键或值)。有任何想法吗?

4

3 回答 3

4

也许尝试直接绑定到字典的值:

ItemsSource="{Binding Persons.Values}"

如果我正确理解了您的 XAML,则字典中的每个对象都有一个您尝试绑定的名为“文本”的字段。如果是这样并且您进行了上述更改,则还需要更改 DataTemplate:

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

有关更多信息,请参阅本文。HTH。

于 2009-07-08T12:57:01.833 回答
3

我通过使用这条线解决了它:

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

http://www.dev102.com/2008/03/07/binding-a-wpf-control-to-a-dictionary/上的代码似乎不起作用。

于 2009-07-08T13:01:58.693 回答
0

假设您有一个名为 RowValues 的字典,其中 [key, value] 都定义为 [string, string]。

现在要绑定到此字典的值对,您可以执行以下操作:

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

要显示文本(值),您可以绑定为:

<TextBlock Text="{Binding}"/>
于 2014-11-04T23:40:33.143 回答