gpt4 book ai didi

wpf - CollectionViewSource.GetDefaultView 不在 Silverlight 3 中!有什么解决办法吗?

转载 作者:行者123 更新时间:2023-12-02 14:33:12 24 4
gpt4 key购买 nike

Silverlight 3 中没有 CollectionViewSource.GetDefaultView() 方法。在 WPF 中,我有以下扩展方法:

public static void SetActiveViewModel<ViewModelType>(this ViewModelBase viewModel,
ViewModelType collectionItem,
ObservableCollection<ViewModelType> collection) where ViewModelType : ViewModelBase
{
Debug.Assert(collection.Contains(collectionItem));
ICollectionView collectionView = CollectionViewSource.GetDefaultView(collection);
if(collectionView != null) collectionView.MoveCurrentTo(collectionItem);
}

如何在 Silverlight 3 中编写此代码?

最佳答案

Silverlight 不包含默认 View 的概念。当您要求 Silverlight 中的控件绑定(bind)到集合时,它确实绑定(bind)到该集合,而不是绑定(bind)到默认 View 。

因此,我认为您的扩展方法无法直接完整地移植。需要对 MVVM 实现进行一些重新设计。我之前没有遇到过 View 模型实例集合的概念,所以我不确定什么适合您的情况。

我见过的几种使用 CollectionViewSource 的方法是在 Xaml 中定义 CollectionViewSource 并将其 Source 绑定(bind)到某些内容在 View 模型中。或者让 ViewModel 公开一个 CollectionViewSource 属性,并将 View xaml 绑定(bind)到其 View 属性。

关于wpf - CollectionViewSource.GetDefaultView 不在 Silverlight 3 中!有什么解决办法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2530942/

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