Я использую платформу WPF и PRISM для своего приложения. Я использую шаблон MVVM (Model - View - ViewModel), и я пытаюсь перенести событие MouseLeftButtonUp из кода программной части в View в ViewModel (так что событие будет соответствовать правилам MVVM). На данный момент у меня есть это:
View.xaml:
<DataGrid x:Name="employeeGrid" Height="250" Margin="25,0,10,0" ItemsSource="{Binding DetacheringenEmployeesModel}" IsReadOnly="True" ColumnHeaderStyle="{DynamicResource CustomColumnHeader}" AutoGenerateColumns="False" RowHeight="30">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonUp">
<i:InvokeCommandAction Command="{Binding EmployeeGrid_MouseLeftButtonUp}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<DataGrid.Columns>
View.xaml.cs (код программной части):
public partial class UC1001_DashBoardConsultants_View
{
public UC1001_DashBoardConsultants_View(UC1001_DashboardConsultantViewModel viewModel)
{
InitializeComponent();
DataContext = viewModel;
}
}
ViewModel.cs:
public void EmployeeGrid_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
// insert logic here
}
Основная идея заключается в том, что когда я нажимаю на ячейку в DataGrid, событие сработает. Я сначала попробовал это в коде позади, и это сработало. Я так далеко зашел с EventTriggers, но когда я отлаживаю и нажимаю на ячейку, мой отладчик не входит в метод.
Есть ли у кого-нибудь идеи, как это исправить? Заранее спасибо!
PS: Он также работает с параметром (отправитель объекта), когда я так делаю? Потому что мне нужен DataGrid в моей ViewModel, чтобы получить ActiveCell, на который я только что нажал.
РЕДАКТИРОВАТЬ:
Связывание событий работало с командой!
У меня в DataGrid есть следующее:
<DataGridTextColumn Header="Okt" Width="*" x:Name="test" >
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Tag" Value="{Binding Months[9].AgreementID}"/>
Как я могу привязать свойство Tag к ViewModel? Я знаю, что он уже привязан к ViewModel, но, как вы можете видеть, значение поступает из массива / списка, а значение для каждого столбца отличается.