У меня проблемы с триггером события SelectionChanged
для поля со списком в моей сетке данных.
Источник элементов combobox привязан к моей модели представления. Выбранный элемент combobox также привязан к моей модели представления.
Когда я изменяю выбранный элемент поля со списком, запускается команда делегата в модели представления, которая отключается и обновляется и т. Д. Но когда я прокручиваю сетку данных, также возникает событие 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);
}
}
Во всех статьях, которые я искал, обсуждается, что команда не запускается и не запускается при прокрутке сетки данных. Мы будем очень благодарны за любую помощь или направление к статье.
Огромное спасибо.
ReasonChangedCommand
, чего не можете делать в установщикеSelectedReason
? - person Peregrine   schedule 26.10.2018ReasonChangedCommand
обновляетSelectedReason
для этой строки таблицы данных в базе данных. - person StuC   schedule 26.10.2018