当从可观察集合中清除项时,抑制ListView选择改变

本文关键字:抑制 ListView 改变 选择 清除 观察 集合 | 更新日期: 2023-09-27 18:14:29

在我的应用程序中,我在listview的视图模型中做了这样的事情:

public override void RefreshData() {
    base.RefreshData();
    ItemsSource.Clear();
    foreach (var item in ListViewData) {
        ItemsSource.Add(item);
    }
    RaisePropertyChanged("ItemsSource");
}

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

当从可观察集合中清除项时,抑制ListView选择改变

我不这么认为。您可能需要实现一个属性,可以设置该属性来告诉事件处理程序暂时忽略该事件,直到所有内容都更新。我通常喜欢使用"DeferSelectionChanged"之类的东西。