У меня в настоящее время есть таблица данных в моих представлениях ( ProductView.xaml ), которая выглядит следующим образом:
DataGrid x:Name="myDataGrid" x:FieldModifier="public" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="No MAT" Binding="{Binding MATProductNumber}" Width="0.1*"/>
<DataGridTextColumn Header="Format" Binding="{Binding tblFormat.FormatName}" Width="0.1*"/>
<DataGridTextColumn Header="Nom produit" Binding="{Binding tblProduct.ProductName}" Width="0.1*"/>
</DataGrid.Columns>
Поскольку я все еще знаком с WPF и C#, я все еще не на 100% доволен моделью MVVM. Мне удалось привязать данные к моей Datagrid, вставив этот код в мой productView.xaml.cs :
public ProductListView()
{
InitializeComponent();
LoadProducts();
}
private void LoadProducts()
{
myDataGrid.ItemsSource = db.tblMATProduct.Include(s => s.tblGrade).Include(s => s.tblProduct).Include(s => s.tblFormat).Take(15).ToList();
}
Здесь я установил itemsSource myDataGrid в результат моего запроса Entity Framework в коде позади .
Однако я прочитал, что вместо этого лучше реализовать его в файле View Model.
Поэтому я теперь связал Контекст данных для моей модели представления в выделенном коде и добавление этого в мой класс ViewModel
public ProductListViewModel()
{
ProductsList = new List<tblMATProduct>(db.tblMATProduct.Include(s => s.tblGrade).Include(s => s.tblProduct).Include(s => s.tblFormat).Take(15).ToList());
}
public List<tblMATProduct> ProductsList { get; }
А также изменили мой Datagrid
DataGrid x:Name="myDataGrid" ItemsSource="{Binding DataContext.ProductsList}" x:FieldModifier="public" AutoGenerateColumns="False">
Но похоже, что он не связывает data.
Кто-нибудь знает почему не прав в этой логи c?
Заранее спасибо!