如何在hashset的第一个元素中通知更改?

时间:2014-05-19 17:13:44

标签: c# wpf mvvm ivalueconverter

我有一个hashset,我想在第一个元素的属性发生变化时通知视图。

我在属性发生变化时实现了通知的iterface,但我不知道如何通知视图。我在我看来有这个代码:

<DataGridTextColumn Header="Field01" Binding="{Binding Path=MyHashSet[0], Converter={StaticResource myValeuConverter}}"/>

问题是HashShet没有办法访问元素,所以我不能使用myHashSet [0]或myHashSet.ElementAt(0)或其他东西。

如果在我的视图模型中我使用Linq,则hashset具有方法First(),但在视图中我不知道是否可以包含Linq以访问此方法。

那么,是否可以在转换器中使用我的hashset的第一个元素?

感谢。

2 个答案:

答案 0 :(得分:4)

HashSet没有订单(至少不是您可以依赖的订单)。 &#34; First&#34;的概念不适用。

来自MSDN

  

HashSet类提供高性能的集合操作。一套   是一个不包含重复元素的集合,其中包含   元素没有特别的顺序。

您想要选择某种类型的有序收集类型。

也许是SortedSetOrderedDictionary或者只是一个列表?

答案 1 :(得分:1)

我不确定这会对您有多大帮助,或者它是否是您正在寻找的答案:

在添加所说的&#34; First&#34;项目到HashSet,你可以在ViewModel中有一个引用该项的属性,你的xaml可以绑定到该属性。