<Style TargetType = "Lable">
<Style.Triggers>
<!--白色-->
<DataTrigger Binding ="{Binding RelativeSource = {RelativeSource Self},Path = Tag}" Value ="0">
<Setter Property = "Background" Value = "#FF00AABB">
</DataTrigger >
</Style.Triggers>
</Style>
颜色value值绑定后台的一个32位变量ColorChange
代码改成:
<Style TargetType = "Lable">
<Style.Triggers>
<!--白色-->
<DataTrigger Binding ="{Binding RelativeSource = {RelativeSource Self},Path = Tag}" Value ="0">
<Setter Property = "Background" Value = "{Binding Source = this,Path = “ColorChange”}">
</DataTrigger >
</Style.Triggers>
</Style>
后台初始值改变 ColorChange,但是label颜色没有改变,请大侠帮忙!
[color=#800080]C# 后台代码
UInt32 _ColorChange = 0xFF00AABB;
UInt32 ColorChange
{
get
{
return _ColorChange ;
}
set
{
_ColorChange = value;
}
}[/color]
3 个解决方案
#1
窗体类实现INotifyPropertyChanged接口,并应用到属性上,不清楚去搜。
在窗口的默认构造函数中指定 DataContext 例如:this.DataContext = this;
在窗口的默认构造函数中指定 DataContext 例如:this.DataContext = this;
#2
按照1楼的方法去做,同时在绑定里面设置一个Converter,用来将32位整数转换为Brush
#3
一楼正解,普通属性不能实现界面的实时更新功能。需要实现相关接口,或者用MVVM,实现ViewModelBase接口,这个是成熟的框架,挺好用的,楼主可以试一下
#1
窗体类实现INotifyPropertyChanged接口,并应用到属性上,不清楚去搜。
在窗口的默认构造函数中指定 DataContext 例如:this.DataContext = this;
在窗口的默认构造函数中指定 DataContext 例如:this.DataContext = this;
#2
按照1楼的方法去做,同时在绑定里面设置一个Converter,用来将32位整数转换为Brush
#3
一楼正解,普通属性不能实现界面的实时更新功能。需要实现相关接口,或者用MVVM,实现ViewModelBase接口,这个是成熟的框架,挺好用的,楼主可以试一下