繁体   English   中英

在属性更改时更新自定义控件的绑定属性

[英]Updating a Custom Control's binded Property on its property change

App.cs

class customRadioButton:RadioButton
{
   private Brush enableColor;
   private Brush disableColor;

   public EnableColor()
   {
       get{ /*get value */}
       set{ /* set value */}
   }
}

Main.xaml

<local:customRadioButton EnableColor={Binding ElementName=disableButton, Path=EnableColor} />
<local:customRadioButton x:Name="disableButton" EnableColor="Red", Path=EnableColor} />

现在我动态更改EnableColor的值。 我遇到的问题是分配的值但未反映在main.window中

我不想使用依赖属性

是否有任何其他方法来告诉Binded Elements其属性已更改。
注意:我尝试过UpdateTrigger它也无法正常工作

为了获得Binding工作,您需要创建一个DependencyProperty。

  public Brush EnableColor
    {
        get { return (Brush)this.GetValue(EnableColorProperty); }
        set { this.SetValue(EnableColorProperty, value); }
    }
    public static readonly DependencyProperty EnableColorProperty = DependencyProperty.Register(
      "EnableColor", typeof(Brush), typeof(customRadioButton), new PropertyMetadata(default(Brush));

阅读MSDN了解详细信息。

好奇你厌恶使用dependencyproperty是什么? 我在手机上回答这个问题,所以不能为你嘲笑,但这样做非常简单。

只需为“WPF自定义控件依赖属性示例”执行Google操作,并按照自己的需要进行自定义操作。

依赖性peppery将为您提供您正在寻找的更改通知。

只有在绑定到XAML数据上下文的某些内容时,UpdateTrigger才会适用。 我的意思是我猜玩具可以捏造以使其工作,但DependencyProperty绝对是这样

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM