WPF MultiDataTrigger AND条件

我想只在我的两个数据网格都选择了项目时才启用按钮。 现在,当任一数据网格都有选择时,它就会启用。 有任何想法吗?

  

以下是您的代码所发生的情况:当两个数据网格都有选择时,这两个条件都不成立,只有当两个数据网格都没有选择时才满足条件。

程序启动时,两个datagrids都为空,因此满足您的条件。 现在,如果您在任一网格中进行选择,则永远不会满足您的条件,并且IsEnabled的值保持为True即原始值。

要解决此问题,您需要一个转换器:

 public class NotNullToBoolConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { bool result = value == null ? false : true; return result; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return value; } } 

  

我认为正确的方法是使用Property绑定和带有CanExecute条件的Command,它绑定到Button。

 public RelayCommand SaveCommand { get; set; } SaveCommand = new RelayCommand(); SaveCommand.Action = () => { Save(SelectedObject1,SelectedObject2); }; SaveCommand.CanExecute = () => { SelectedObject1 != null && SelectedObject2 != null) }; 

XAML: