Właściwy sposób korzystania z CollectionViewSource w ViewModel
Użyłem Drag and Drop, aby powiązać obiekt źródła danych (model DB) zDataGrid
(zasadniczo po tym przykładzie wPowiązanie ramowe Entity Framework z WPF.
Wszystko działa dobrze z tą implementacją.
XAML<Window.Resources>
<CollectionViewSource x:Key="categoryViewSource"
d:DesignSource="{d:DesignInstance {x:Type local:Category}, CreateList=True}"/>
</Window.Resources>
<Grid DataContext="{StaticResource categoryViewSource}">
..
Kod zaprivate 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;
}
ViewModelpublic MainWindow()
{
InitializeComponent();
this.DataContext = new MyViewModel();
}
Jednak gdy próbuję użyć tego samego kodu z ViewModel, nie działa (FindResource
nie jest dostępny), poza tym nie sądzę, aby było to właściwe podejście (tj. użyciex:Key
w MVVM).
Byłbym wdzięczny za każdą pomoc, aby wskazać mi właściwy sposób wdrożeniaCollectionViewSource
iDataBinding
zDataGrid
.