绑定到字典的列表框中的分组

本文关键字:列表 字典 绑定 | 更新日期: 2023-09-27 18:27:34

我有以下ListBox:

<ListBox Name="listBox1">
  <ListBox.GroupStyle>
    <GroupStyle>
      <GroupStyle.HeaderTemplate>
        <DataTemplate>
          <TextBlock Text="{Binding Name}" Foreground="Red" />
        </DataTemplate>
      </GroupStyle.HeaderTemplate>
    </GroupStyle>
  </ListBox.GroupStyle>
  <ListBox.ItemTemplate>
    <DataTemplate>
      <TextBlock Text="{Binding Value}" />
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

以及填充和设置分组的代码:

var Addresses = new Dictionary<string, Address>();
Addresses.Add("1", new Address() { State = "xxx", ... });
...
var view = CollectionViewSource.GetDefaultView(Addresses);
view.GroupDescriptions.Add(new PropertyGroupDescription("State"));
listBox1.ItemsSource = view;

我没有分组,只有项目本身。如果我使用List而不是Dictionary来填充ListBox,它可以正常工作,但在这种特殊情况下,我确实需要添加Dictionary的功能(实际上是按键寻址项目的能力)。

绑定到字典的列表框中的分组

谢谢,Sinatr,这让我朝着正确的方向前进。其实很简单:

view.GroupDescriptions.Add(new PropertyGroupDescription("Value.State"));