2011-09-06 56 views
0

我嘗試使用MappingConverter綁定(在我們的器件的應用存在,工作不錯)以這樣的方式在映射器

<converters:MappingConverter x:Key="RewardTypeToSymbolConverter" 
          ElseMappingValue="BlaBla"> 
    <converters:MappingEntry FromValue="{x:Static loc:SomeEnum.Value}" 
          ToValue="{Binding SomeStringInViewModel}" /> 
</converters:MappingConverter> 

我沒有得到任何異常,但我的TextBlock顯示什麼。轉換器中的斷點顯示ToValue屬性爲NULL(但SomeStringInViewModel不是)。

有沒有人有一些想法如何在轉換器中使用這種綁定?或者在資源中使用綁定是不可能的?

+0

請在'<轉換器:MappingConverter ... />'附近提供一些代碼。你如何將轉換器綁定到'TextBlock'上? – WaltiD

+0

FromValue,ToValue,ElseMappingValue是依賴項屬性,它的類型是對象。以下是有關MappingConverter的一些信息(http://wpfconverters.codeplex.com/wikipage?title=User%20Documentation#MapConverter)。我用這種方式: – Eyjafjallajokull

回答

0

轉換器都沒有任何樹,無論是邏輯或視覺。根本不應該有DataContext,如果你想做任何類型的綁定,你應該指定一個源(RelativeSource當然不會工作),除了路徑。

在任何情況下,請查看Visual Studio的輸出窗口,那裏顯示的綁定錯誤通常有助於查找問題。另見this article on debugging bindings

+0

我指定了一個綁定的來源,它工作的很好。非常感謝! – Eyjafjallajokull

0

這聽起來像你的DataContext是不正確

我會建議使用像Snoop工具來找出你的DataContext是什麼

+0

DataContext是正確的:其他TextBlock綁定相同的字符串不通過轉換器顯示正確的數據。 – Eyjafjallajokull

+0

@eyjafjallajokull我認爲該轉換器的DataContext可能是錯誤的,因爲它是一個靜態轉換器。 – Rachel

+0

這聽起來確實... – Eyjafjallajokull