编辑:所以,事实证明,这是在VM中的代码问题(令人尴尬足够的检查一个属性,总是返回true [重构会话之后]) - 我会认为我会捣毁数据绑定,因为这是通常的嫌疑人(至少对我来说)
谢谢你的所有帮助,并道歉浪费你的时间。WPF DataTrigger/DataBinding失败?
嗨,我试图让这只是改变文本颜色为红色或绿色取决于视图模型中的布尔依赖项属性。触发器是问题所在......我想?
<TextBlock>
<TextBlock.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding IsNegativeChange}" Value="true">
<Setter Property="TextBlock.Foreground" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding IsNegativeChange}" Value="false">
<Setter Property="TextBlock.Foreground" Value="Green" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} ({1})">
<Binding Path="ReturnedData.Change" />
<Binding Path="ReturnedData.ChangePercentage" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
的IsNegativeChange是视图模型对象本身的成员,并且因此它不需要“ReturnedData”资格。
就目前而言,文字总是显示为绿色。 ViewModel根据输入正确地返回true/false ..帮助!我错过了什么愚蠢的东西吗?
[编辑用于格式化]
编辑,在调试窗口中,它说:
BindingExpression:路径= IsNegativeChange;的DataItem = NULL;目标元素是'TextBlock'(Name =''); target property is'NoTarget'(type'Object')
是不是由?
您的视图模型是否实现INotifyPropertyChanged? – CodeNaked 2011-03-29 15:27:32
不,但它是一个依赖属性,所以我假设变更通知已经处理完毕...? – 2011-03-29 15:29:08
我应该补充说,所有其他属性工作正常。 – 2011-03-29 15:29:58