2014-09-19 58 views
0

我想使用布尔值等于true来更改前景setter属性。 我想:由布尔值触发的DataTrigger

public bool RED = false; 

if (condition) 
    { 
    RED = true; 
    } 

,并具有由布尔触发DataTrigger:

 <ListView.ItemContainerStyle> 
    <Style TargetType="{x:Type ListViewItem}"> 
     <Setter Property="Height" Value="16" /> 
      <Style.Triggers> 
      <DataTrigger Binding="{Binding Path=RED}" Value="True"> 
       <Setter Property="Foreground" Value="Red" /> 
       </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </ListView.ItemContainerStyle> 

,但没有运气。什么是最好/最简单的方式来写这个?

+0

这是WPF,对不对? – Neolisk 2014-09-19 21:59:34

+0

是的。我只是想当布尔=真改变前景色,最简单的方式。 – 2014-09-19 22:07:37

回答

1

您需要创建一个属性。你有什么是一个领域。此外,您需要实施INotifyPropertyChanged或使用DependencyProperty或其他能够通知WPF绑定的属性类型。

private bool _red; 
public bool Red { 
    get { return _red; } 
    set 
    { 
     _red = value; 
     OnPropertychanged(); 
    } 
} 
+0

好的,谢谢。我的xaml看起来是否正确? – 2014-09-22 13:24:46

+0

@LoganLower:是的,假设你的DataContext拥有'RED'属性。 – 2014-09-22 19:00:14