在ListBox中分组绑定到Dictionary

时间:2014-10-22 10:48:52

标签: c# wpf dictionary listbox

我有以下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的附加功能(实际上是按键解决项目的能力)。

1 个答案:

答案 0 :(得分:0)

谢谢,Sinatr,这引导我朝着正确的方向前进。它实际上很简单:

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