我正在構建基於MVVM的WPF應用程序,我面臨一些問題: 我需要根據來自模型的信息構建UI,例如 我的模型包含進程列表(從XML文件加載 - 動態),每個進程包含信息(名稱,圖標路徑等)。 foreach過程我需要建立一個單一的按鈕(顯示相對應的進程信息),爲了做到這一點,我需要檢索從viewModel到UI的進程列表(爲了執行實際的UI構建),這將強制UI引用進程容器...並且將打破MVVM。通過MVVM動態UI模式
有人有任何想法如何實現這個沒有打破MVVM?
很多謝謝。
我正在構建基於MVVM的WPF應用程序,我面臨一些問題: 我需要根據來自模型的信息構建UI,例如 我的模型包含進程列表(從XML文件加載 - 動態),每個進程包含信息(名稱,圖標路徑等)。 foreach過程我需要建立一個單一的按鈕(顯示相對應的進程信息),爲了做到這一點,我需要檢索從viewModel到UI的進程列表(爲了執行實際的UI構建),這將強制UI引用進程容器...並且將打破MVVM。通過MVVM動態UI模式
有人有任何想法如何實現這個沒有打破MVVM?
很多謝謝。
使用綁定到ViewModel集合的ItemsControl
。在ItemsControl
內定義一個DataTemplate
,它基本上是一個基於每個進程構建您的Button
的包裝。
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Content="{Binding ProcessName}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
如果你需要做的不僅僅是更改按鈕上的文本,你可以使用一個DataTemplateSelector
您不必使用MVVM每一個場景。事件驅動模型有時對某些情況更好。結帳這個論壇帖子http://forums.silverlight.net/forums/t/127825.aspx閱讀Laurent R.談論MVVM的地方。他是製作MVVM Toolkit的人。無論如何,對不起,這不是一個答案,但只是給你一個領導。 :) –