我有一個IValueConverter實現的類,我需要使用我的DI容器(Ninject)注入它。如何在XAML中注入轉換器
問題是,在XAML中,沒有立即明顯的方式來控制Converter對象的實例化。
所以我的XAML包含一行是這樣的:
來源= 「{綁定路徑= CurrentMessage,轉換器= {StaticResource的ImagePathConverter}}」
其中,在ImagePathConverter會爲我創建。
我想我可以創建一個「服務定位器」靜態類,並調用它來解決我的依賴關係,並將StaticResource更改爲屬性「MyServiceLocator.TheImageConverter」,但這使我想嘔吐。
我希望這個問題可以用一些代碼片段來回答,這些代碼片段專門針對提供的代碼 - 也許是一個示例的支持鏈接。不只是一個建議去看看的地方。
此外,非常重要的是,假設XAML 沒有代碼隱藏 - 而且我不能使用它。我正在創建一個皮膚,並且不想要代碼。所以我不能在類的構造函數中設置一個類變量並引用它。也許這是不合理的,我還不確定。
我想知道爲什麼你需要轉換器與DI解決..? – NotDan 2009-05-23 04:36:20
因爲Converter使用(取決於)一個格式化類,它具有它自己的依賴關係,並且每個這些依賴關係也可能具有依賴關係。這是DI的全部重點 - 爲我連接所有這些依賴關係。 我想知道如果很多人只是用它來新的對象,並沒有意識到主要目的? – PandaWood 2009-05-23 10:45:16