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

时间:2014-02-28 21:16:03

标签: c# wpf visual-studio-2010 xaml

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它也无法正常工作

2 个答案:

答案 0 :(得分:2)

为了获得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了解详情。

答案 1 :(得分:0)

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

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

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

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