Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UWP将两个布尔绑定到IsEnabled属性_C#_Uwp_Binding_Boolean - Fatal编程技术网

C# UWP将两个布尔绑定到IsEnabled属性

C# UWP将两个布尔绑定到IsEnabled属性,c#,uwp,binding,boolean,C#,Uwp,Binding,Boolean,我在我的UWP程序中实例化了两个不同的对象。它们的类定义如下所示: namespace StackOverflow { public class FirstClass : INotifiyPropertyChanged { private bool isEnabled = false; public bool IsEnabled { get => isEnabled; set

我在我的UWP程序中实例化了两个不同的对象。它们的类定义如下所示:

namespace StackOverflow
{
    public class FirstClass : INotifiyPropertyChanged
    {
        private bool isEnabled = false;
        public bool IsEnabled 
        {
            get => isEnabled;
            set
            {
                isEnabled = value;
                NotifyPropertyChanged();
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;
        private void NotifyPropertyChanged([CallerMemberName] string propertyName = "") => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }

    public class SecondClass : INotifiyPropertyChanged
    {
        private bool isEnabled = false;
        public bool IsEnabled 
        {
            get => isEnabled;
            set
            {
                isEnabled = value;
                NotifyPropertyChanged();
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;
        private void NotifyPropertyChanged([CallerMemberName] string propertyName = "") => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}
<Button Content="Press me if you can" IsEnabled="{x:Bind FirstClass.IsEnabled, Mode=OneWay}"/>
XAML端的绑定当前如下所示:

namespace StackOverflow
{
    public class FirstClass : INotifiyPropertyChanged
    {
        private bool isEnabled = false;
        public bool IsEnabled 
        {
            get => isEnabled;
            set
            {
                isEnabled = value;
                NotifyPropertyChanged();
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;
        private void NotifyPropertyChanged([CallerMemberName] string propertyName = "") => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }

    public class SecondClass : INotifiyPropertyChanged
    {
        private bool isEnabled = false;
        public bool IsEnabled 
        {
            get => isEnabled;
            set
            {
                isEnabled = value;
                NotifyPropertyChanged();
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;
        private void NotifyPropertyChanged([CallerMemberName] string propertyName = "") => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}
<Button Content="Press me if you can" IsEnabled="{x:Bind FirstClass.IsEnabled, Mode=OneWay}"/>

使用此代码,Button.IsEnabled仅依赖于FirstClass.IsEnabled,我希望实现的是Button.IsEnabled属性依赖于FirstClass.IsEnabled和SecondClass.IsEnabled。我怎样才能得到这样的结果呢


我想实现多重绑定,但它似乎是一个只支持WPF的功能

我们无法在xaml中直接绑定两个属性。它似乎只能在代码后操作。当您设置IsEnabled of FirstClass或SecondClass时,然后手动判断IsEnabled of按钮。

是否可以绑定两个代码behing变量?例如,创建第三个类,它有两个到FirstClass和SecondClass的独立绑定,将用作源和输出,这将是后面的xaml的输出。可以组合这两个isEnabled属性来确定并只输出一个值,确保绑定值是唯一的。