gpt4 book ai didi

WPF:如何 Hook 到 ListView 的 ItemsSource CollectionChanged 通知?

转载 作者:行者123 更新时间:2023-12-04 16:25:04 26 4
gpt4 key购买 nike

我有一个 ListView数据绑定(bind)到 ObservableCollection ...

<ListView x:Name="List1" ItemsSource="{Binding MyList}" />

我似乎找不到任何在集合更改时触发的事件,所以我想我需要以某种方式 Hook 到 collectionchanged 通知?我不确定该怎么做。

基本上,当集合发生变化时,我想做除了 ListView 在更新列表方面已经做的工作​​之外的额外工作。

最佳答案

默认情况下 ItemsSource IEnumerable 类型.您需要首先转换为可以访问 CollectionChanged 的类型。事件,然后为该事件添加一个处理程序。

((INotifyCollectionChanged)List1.ItemsSource).CollectionChanged +=
new NotifyCollectionChangedEventHandler(List1CollectionChanged);

public void List1CollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
{
// Your logic here
}

注意:我将其转换为 INotifyCollectionChanged 在我的例子中,但你真的可以将它转换为任何实现它的对象。不过,作为最佳实践,您应该转换为最通用的类​​型,让您可以访问所需的方法/属性/事件。因此,虽然您可以将其转换为 ObservableCollection ,你不需要。 INotifyCollectionChanged包含您需要的事件,如果您决定使用其他类型的集合来实现它,这将继续工作,而转换为 ObservableCollection意味着如果有一天你决定你的列表现在是 MyOwnTypeOfObservableCollectionNotDerivedFromObservableCollection 类型比这会破裂。 ;)

附言这应该在 xaml 代码隐藏中。

关于WPF:如何 Hook 到 ListView 的 ItemsSource CollectionChanged 通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5806172/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com