2010-04-23 99 views
2

不被調用我有使用DataTemplate一個ComboBox。該DataTemplate包含有約束力的,它使用的IValueConverter一個枚舉值轉換爲字符串。問題是值轉換器從不調用。如果我在StatusToTextConverter.Convert()中放置斷點,它永遠不會被擊中。ValueConverter在DataTemplate中綁定

這是我的XAML:

<ComboBox ItemsSource="{Binding Path=StatusChoices, Mode=OneWay}"> 
     <ComboBox.ItemTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding Converter={StaticResource StatusToTextConverter}}"/> 
      </DataTemplate> 
     </ComboBox.ItemTemplate> 
    </ComboBox> 

我認爲這是一個多麼含蓄地結合到DataTemplate正在呈現的價值。我錯了嗎?

編輯:對於上下文:我打算顯示在DataTemplate一個Image旁邊那TextBox。如果我不能得到TextBox結合工作,那麼我不認爲Image將工作,無論是。

回答

3

在某些情況下,你必須明確的Binding供應Path。試試這個:

<TextBlock Text="{Binding Path=.,Converter={StaticResource StatusToTextConverter}}"/> 
+0

這是有效的(我以前從來沒有見過這種語法,非常酷)!但事實證明,我實際上並不需要Path =。在那裏。在一片輝煌中,我不小心刪除了視圖模型中的StatusChoices屬性。這是我的失敗,但至少我從你的答案中學到了一些東西,謝謝! – 2010-04-23 18:53:01

+0

{結合}和{綁定路徑=}是幾乎相等的,但我也遇到了幾種情況下,其他的語法必須使用(當然是有一些附加綁定屬性)。 – wpfwannabe 2010-04-23 18:56:05

+0

是的,聽起來像那些好的WPF陷阱之一:-) – 2010-04-23 18:58:11