在C# / WPF中将字典绑定到ItemsControl

3

我正在尝试将Dictionary的KeyValuePair元素绑定到ItemsControl。 我的Dictionary有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>

很不幸,没有任何文本框内容(这可能是键或值)。有什么想法吗?
3个回答

4
也许直接绑定字典的值会更好:
ItemsSource="{Binding Persons.Values}"

如果我正确理解您的XAML,字典中的每个对象都有一个名为“Text”的字段,您正在尝试将其绑定。如果是这样,并且您进行了上述更改,则还需要更改DataTemplate:
<TextBox Text="{Binding Text}" />

查看此文章以获取更多信息。希望对您有所帮助。


3

0
假设您有一个名为RowValues的字典,其中[key, value]均定义为[string, string]。现在,要绑定到此字典的值对,可以执行以下操作:
<ItemsControl ItemsSource="{Binding RowValues.Values}" >

要显示文本(Value),您可以绑定如下:

<TextBlock Text="{Binding}"/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接