0

您好有一个绑定到 ObservableCollectionEx 集合的 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); }

我怎样才能防止物品被欺骗?

4

1 回答 1

0

只需在添加之前添加检查以查看该项目是否已存在

void Add_Title(object sender, TitleEventArgs e) 
{ 
    if (!_titles.Contains(e.Title))
        _titles.Add(e.Title); 
}

如果集合可以被多个线程访问,您可能需要在集合被修改时锁定集合。

于 2012-08-27T12:54:56.317 回答