Over StackOverflow問題How can WPF Converters be used in an MVVM pattern?我知道值轉換器不應該用在MVVM模式中,因爲值轉換器的功能應該由ViewModel本身處理。您的ViewModel應該將XAML元素作爲屬性公開嗎?
這是有道理的。
但我記得讀過你應該不會將XAML元素暴露給視圖,而是隻顯示View然後使用DataTemplates綁定和顯示的數據集合。
然而,轉換器似乎相當強大(例如,因爲它們是在MVVM Template demo使用,請參閱「信使示例」拆包之後)在他們可以將對象轉換爲對象,例如消息對象到FlowDocument對象,或客戶對象到可見性對象,或自定義狀態對象到圖像等
所以,如果一個ViewModel去承擔價值轉換器的功能,它將不得不公開XAML元素和屬性,如StackPanel,Visibility,Color,FlowDocument等等,對嗎?
有誰看到任何理由的價值轉換器做一個視圖模型不應該公開這些豐富的XAML對象?