绑定到 ICollectionView 时,模拟数据不显示。
绑定到 ICollectionView 时,模拟数据不显示。
如果我将我的ListBox
绑定到ViewModel的ObservableCollection
或XAML资源的CollectionViewSource
,则在设计时显示模拟数据。
有时,由于某些XAML更改,CollectionViewSource
停止显示这些数据,但在重新构建代码后,它会再次用虚假数据填充控件。
在我的情况下,分组、排序和过滤是在ViewModel中控制的(并从数据库中检索),因此我决定转移到基于ViewModel的ICollectionView
属性。不幸的是,视图不再获取任何模拟数据。
以下是我尝试的简单示例方法:
代码后台:
namespace Test { public partial class MainWindow { public MainWindow() { DataContext = new MainWindowViewModel(); InitializeComponent(); } } }
和ViewModel:
using System.Collections.ObjectModel; using System.ComponentModel; using System.Windows.Data; namespace Test { public class MainWindowViewModel { public ICollectionView ItemsICollectionView { get; set; } public CollectionView ItemsCollectionView { get; set; } public ListCollectionView ItemsListCollectionView { get; set; } public ObservableCollectionItemsObservableCollection { get; set; } public CollectionViewSource ItemsBackCollectionViewSource { get; set; } public MainWindowViewModel() { ItemsObservableCollection = new ObservableCollection {"a", "b", "c"}; ItemsICollectionView = CollectionViewSource.GetDefaultView(ItemsObservableCollection); ItemsCollectionView = CollectionViewSource.GetDefaultView(ItemsObservableCollection) as CollectionView; ItemsListCollectionView = CollectionViewSource.GetDefaultView(ItemsObservableCollection) as ListCollectionView; ItemsBackCollectionViewSource = new CollectionViewSource {Source = ItemsObservableCollection}; } } }
我尝试的将CollectionViewSource移到ViewModel的所有方法都无法让我看到模拟数据:
我对这些控件进行了一些调试比较,但它们在运行时设置得非常相似。我不知道能否在设计时进行调试。
有什么我遗漏的地方,还是必须这样?谢谢