Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.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#中的INotifyPropertyChanged布尔属性?_C#_Wpf - Fatal编程技术网

如何以编程方式将按钮的可见性绑定到C#中的INotifyPropertyChanged布尔属性?

如何以编程方式将按钮的可见性绑定到C#中的INotifyPropertyChanged布尔属性?,c#,wpf,C#,Wpf,以下是我到目前为止的收获: System.Windows.Data.Binding binding = new System.Windows.Data.Binding("MyProperty"); binding.Mode = System.Windows.Data.BindingMode.TwoWay; binding.Converter = new System.Windows.Controls.BooleanToVisibilityConverter(); binding.Source

以下是我到目前为止的收获:

System.Windows.Data.Binding binding = new System.Windows.Data.Binding("MyProperty");
binding.Mode = System.Windows.Data.BindingMode.TwoWay;
binding.Converter = new System.Windows.Controls.BooleanToVisibilityConverter(); 
binding.Source = mySourceObject;

this.SetBinding(this.myButton.Visibility, binding);

但是可见性不是一个依赖属性,所以我如何才能做到这一点呢?

您应该能够做到

Button.VisibilityProperty
而不是

this.myButton.Visibility

您需要传入静态可见性依赖项属性本身(它继承自
UIElement
),而不是按钮实例上的属性值,例如:

myButton.SetBinding(UIElement.VisibilityProperty, binding);

根据,
Visibility
当然是一个
dependencProperty
。我在通过XAML之前绑定了按钮的可见性,所以您应该能够在代码隐藏中。我注意到第一行有一个拼写错误,是在你的代码中还是仅仅在帖子中?它应该是新的System.Windows.Data.Binding你有没有n的出价。这很好,但它怎么知道目标是什么。。。如果它只是一个普通按钮。VisibilityProperty。。它如何知道使用我的特定按钮?因为myButton应该设置proeProperty:this.myButton.SetValue(UIElement.VisibilityProperty,binding);我想你指的是myButton.SetBinding(Button.VisibilityProperty,binding);