您有一个绑定到ObservableCollectionEx集合的TreeView。 我的应用程序是多线程的,有时我在TreeView中看到重复的条目。
我的treeView看起来像这样:
<TreeView
ItemsSource="{Binding Titles}"
Margin="3"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
Style="{StaticResource TreeViewStyle}"
>
,绑定项源为:
ObservableCollectionEx<Title>
实际上它发生在Title拥有的Subtitle类中:
ObservableCollectionEx<Subtitle> Subtitles
标题更新通过委托
进行void Add_Title(object sender, TitleEventArgs e) { _titles.Add(e.Title); }
如何防止物品被欺骗?
答案 0 :(得分:0)
在添加项目之前,只需添加一项检查以查看该项目是否已存在
void Add_Title(object sender, TitleEventArgs e)
{
if (!_titles.Contains(e.Title))
_titles.Add(e.Title);
}
如果多个线程可以访问集合,那么在修改集合时可能还需要锁定集合。