У меня проблемы с триггером событий SelectionChanged
для поля со списком в моей сетке данных.
Источник элемента со списком привязан к моей модели представления.Выделенный элемент * также привязан к моей модели вида.
Когда я изменяю элемент, выбранный в выпадающем списке, запускается команда делегата на модели представления, которая отключается, обновляется и т. Д. Но когда я прокручиваю сетку данных, также происходит событие SelectionChanged
.
Я также использую Prism MVVM.
Вот мой XAML :
<DataGrid.Columns>
<DataGridTemplateColumn Header="Selected Reason" Width="150">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Path=DataContext.Reasons, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
SelectedItem="{Binding SelectedReason}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding Path=DataContext.ReasonChangedCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
CommandParameter="{Binding}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
Вот мой Вид модели Команда:
private DelegateCommand<T> _reasonChangedCommand;
public DelegateCommand<T> ReasonChangedCommand =>
_reasonChangedCommand ?? (_reasonChangedCommand = new DelegateCommand<T>(ReasonChanged));
private async void ReasonChanged(T obj)
{
if (obj != null)
{
await _updateRepository.UpdateAsync(obj);
}
}
Все статьи, которые я искал, обсуждают, что команда не запускается и не запускается при прокрутке сетки данных.Любая помощь или направление к статье будет высоко ценится.
Большое спасибо.