У меня есть сетка данных и кнопка сохранения в XAML.У меня есть ObservableCollection, привязанная к сетке данных.
Если я добавлю / удалю строку в сетке данных, я смогу включить кнопку «Сохранить», чтобы позволить пользователю сохранять записи.Однако NotifyCollectionChangedAction в ObservableCollection не может перехватить «правку» (т. Е. Изменения значения).Поэтому я хочу вручную активировать кнопку сохранения, когда вызывается событие currentcellchanged таблицы данных (т.е. установить e.CanExecute = true).
Так как вы не можете установить enable = true, как в WinForms, в WPF есть CanExecuteи Выполнение привязки команды.
В моем XAML:
</UserControl.Resources>
<UserControl.CommandBindings>
<CommandBinding Command="Save" Executed="Save_Executed" CanExecute="Save_CanExecute">
</CommandBinding>
</UserControl.CommandBindings>
<Button Grid.Row="4" Content="Save" Command="Save" HorizontalAlignment="Right" Margin="5" Name="saveButton" VerticalAlignment="Center" Width="75" >
Код:
private void Save_Executed(object sender, ExecutedRoutedEventArgs e)
{
}
private void Save_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = businessContractorViewModel != null && businessContractorViewModel.Entry != null;
}
private void businessDataGrid_CurrentCellChanged(object sender, EventArgs e)
{
//?? how to set savebutton e.canexecute = true?
}