清除可观察集合中的项目时,禁止更改ListView选择

时间:2014-07-22 20:41:37

标签: c# wpf listview

在我的应用中,我在listview的视图模型中做了类似的事情:

public override void RefreshData() {
    base.RefreshData();

    ItemsSource.Clear();

    foreach (var item in ListViewData) {
        ItemsSource.Add(item);
    }

    RaisePropertyChanged("ItemsSource");
}

上面对.Clear()的调用导致调用列表的SelectionChanged事件。考虑到这里没有访问列表视图,是否有一种很好的方法来抑制或阻止该事件被调用?

1 个答案:

答案 0 :(得分:0)

我不这么认为。您可能必须实现一个属性,您可以将其设置为告诉事件处理程序暂时忽略该事件,直到所有内容都更新为止。我通常喜欢使用像“DeferSelectionChanged”这样的东西。开始更新时将其设置为true,完成后将其设置为false。