WPF 触发器的值绑定后台变量,应该如何实现,请大侠帮忙看看啊!!!

时间:2023-01-22 10:19:39
WPF 代码
<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;

#2


引用 1 楼 duanzi_peng 的回复:
窗体类实现INotifyPropertyChanged接口,并应用到属性上,不清楚去搜。 
在窗口的默认构造函数中指定 DataContext 例如:this.DataContext = this;

按照1楼的方法去做,同时在绑定里面设置一个Converter,用来将32位整数转换为Brush

#3


一楼正解,普通属性不能实现界面的实时更新功能。需要实现相关接口,或者用MVVM,实现ViewModelBase接口,这个是成熟的框架,挺好用的,楼主可以试一下

#1


窗体类实现INotifyPropertyChanged接口,并应用到属性上,不清楚去搜。 
在窗口的默认构造函数中指定 DataContext 例如:this.DataContext = this;

#2


引用 1 楼 duanzi_peng 的回复:
窗体类实现INotifyPropertyChanged接口,并应用到属性上,不清楚去搜。 
在窗口的默认构造函数中指定 DataContext 例如:this.DataContext = this;

按照1楼的方法去做,同时在绑定里面设置一个Converter,用来将32位整数转换为Brush

#3


一楼正解,普通属性不能实现界面的实时更新功能。需要实现相关接口,或者用MVVM,实现ViewModelBase接口,这个是成熟的框架,挺好用的,楼主可以试一下