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它也无法正常工作
答案 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绝对是这样的方式