DataGrid保存按钮和CanExecute

| 我在XAML中有一个datagrid和save按钮。我有一个绑定到数据网格的ObservableCollection。 如果我在datagrid中添加/删除一行,则应该能够启用“保存”按钮以允许用户保存记录。但是,ObservableCollection \的NotifyCollectionChangedAction无法捕获\'edit \'(即值更改)。所以我想在调用datagrid的currentcellchanged事件时手动启用保存按钮(即,设置e.CanExecute = true)。 由于不像WinForms中那样可以设置enable = true,因此WPF具有此CanExecute和Executed命令绑定。 在我的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?

        }
    
已邀请:
我添加了一个触发器,当我完成单元格的编辑时,将布尔值Edited = true设置为true并回发,保存按钮将捕获更改并自行启用。 我不知道这是不是最好的,但是对我有用。
private void Save_CanExecute(object sender, CanExecuteRoutedEventArgs e)
        {
            e.CanExecute = Edited;
        }

 private void businessDataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
        {
            Edited = true;
        }
    

要回复问题请先登录注册