小编Dav*_*d S的帖子

在ViewModel中使用CollectionViewSource的正确方法

我使用Drag和Drop将Data Source对象(一个DB模型)绑定到DataGrid(基本上遵循WPF实体框架数据绑定中的这个示例).

这个实现一切正常.

XAML

<Window.Resources>    
<CollectionViewSource x:Key="categoryViewSource"  
    d:DesignSource="{d:DesignInstance {x:Type local:Category}, CreateList=True}"/>
</Window.Resources>
<Grid DataContext="{StaticResource categoryViewSource}">
..
Run Code Online (Sandbox Code Playgroud)

代码背后

private void Window_Loaded(object sender, RoutedEventArgs e)
{
   System.Windows.Data.CollectionViewSource categoryViewSource =
      ((System.Windows.Data.CollectionViewSource)(this.FindResource("categoryViewSource")));

  _context.Categories.Load();
  categoryViewSource.Source = _context.Categories.Local;        
}
Run Code Online (Sandbox Code Playgroud)

视图模型

public MainWindow()
{
    InitializeComponent();
    this.DataContext = new MyViewModel();
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在ViewModel中使用相同的代码时,它不起作用(FindResource不可用),此外,我不认为这是正确的方法(即x:Key在MVVM中使用).

我真的很感激任何帮助点我是什么来实现的正确途径CollectionViewSource,并DataBindingDataGrid.

c# wpf datagrid mvvm collectionviewsource

43
推荐指数
2
解决办法
7万
查看次数

标签 统计

c# ×1

collectionviewsource ×1

datagrid ×1

mvvm ×1

wpf ×1