編輯:所以,事實證明,這是在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