Я использовал Drag and Drop, чтобы связать объект Data Source (модель DB) с DataGrid
(в основном следуя этому примеру в Entity Framework Databinding with WPF).
Все отлично работает с этой реализацией.
XAML
<Window.Resources>
<CollectionViewSource x:Key="categoryViewSource"
d:DesignSource="{d:DesignInstance {x:Type local:Category}, CreateList=True}"/>
</Window.Resources>
<Grid DataContext="{StaticResource categoryViewSource}">
..
Код позади
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;
}
ViewModel
public MainWindow()
{
InitializeComponent();
this.DataContext = new MyViewModel();
}
Однако, когда я пытаюсь использовать тот же код из ViewModel, он не работает (FindResource
недоступен), кроме того, я не думаю, что это правильный подход (т.е. использовать x:Key
в MVVM).
Я был бы очень признателен за любую помощь, чтобы указать мне, как правильно реализовать CollectionViewSource
и DataBinding
с DataGrid
.