绑定到 ICollectionView 时,模拟数据不显示。

10 浏览
0 Comments

绑定到 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 ObservableCollection ItemsObservableCollection { 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的所有方法都无法让我看到模拟数据:

enter image description here

我对这些控件进行了一些调试比较,但它们在运行时设置得非常相似。我不知道能否在设计时进行调试。

有什么我遗漏的地方,还是必须这样?谢谢

0