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: