【发布时间】:2014-10-22 10:48:51
【问题描述】:
我有以下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 的附加功能(通过关键,实际上)。
【问题讨论】:
-
检查“输出”窗口中的绑定错误。我认为
State无法解决。一个快速的解决方法是将密钥添加到Address,然后您可以将它与 linq 一起使用来模仿Dictionary。 -
没有错误报告。我会尝试找出向
PropertyGroupDescription添加转换器是否可以提供解决方案...
标签: c# wpf dictionary listbox