Witam.
Próbuję napisać aplikacje w WPF zgodną z modelem MVVM.
Mam okno z DataGrid
powiązanym z DataTable
z ViewModel
.
Pytanie gdzie powinny znajdować się metody z wiązane z edycja DataGrid
?
Dopisując CellEditEnding
w deklaracji DataGrid
w XAMLu Visual podpowiada stworzenie metody w MainWindow.xaml.cs
, ale czy to jest prawidłowe podejście?
Czy metody nie powinny znaleźć się w ViewModel
?
A jeżeli tak to jak je powiązać z DataGrid
?
Mój kod:
MainWindow.xaml
<Window x:Class="WpfApp4.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp4"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Window.DataContext>
<local:MainWindowViewModel></local:MainWindowViewModel>
</Window.DataContext>
<StackPanel>
<DataGrid ItemsSource="{Binding dataGridDataSource}">
</DataGrid>
</StackPanel>
</Window>
MainWindowViewModel.cs
using Prism.Mvvm;
using System.Data;
namespace WpfApp4
{
class MainWindowViewModel : BindableBase
{
public DataTable dataGridDataSource { get; set; }
public MainWindowViewModel()
{
dataGridDataSource = new DataTable();
DataColumn dc = new DataColumn("t1");
dataGridDataSource.Columns.Add(dc);
DataRow dr = dataGridDataSource.Rows.Add();
dr[0] = "TEST";
RaisePropertyChanged("dataGridDataSource");
}
}
}
Z góry dziękuje za pomoc.
Pozdrawiam.