我有一个hashset,我想在第一个元素的属性发生变化时通知视图。
我在属性发生变化时实现了通知的iterface,但我不知道如何通知视图。我在我看来有这个代码:
<DataGridTextColumn Header="Field01" Binding="{Binding Path=MyHashSet[0], Converter={StaticResource myValeuConverter}}"/>
问题是HashShet没有办法访问元素,所以我不能使用myHashSet [0]或myHashSet.ElementAt(0)或其他东西。
如果在我的视图模型中我使用Linq,则hashset具有方法First(),但在视图中我不知道是否可以包含Linq以访问此方法。
那么,是否可以在转换器中使用我的hashset的第一个元素?
感谢。
答案 0 :(得分:4)
HashSet没有订单(至少不是您可以依赖的订单)。 &#34; First&#34;的概念不适用。
来自MSDN:
HashSet类提供高性能的集合操作。一套 是一个不包含重复元素的集合,其中包含 元素没有特别的顺序。
您想要选择某种类型的有序收集类型。
也许是SortedSet或OrderedDictionary或者只是一个列表?
答案 1 :(得分:1)
我不确定这会对您有多大帮助,或者它是否是您正在寻找的答案:
在添加所说的&#34; First&#34;项目到HashSet,你可以在ViewModel中有一个引用该项的属性,你的xaml可以绑定到该属性。