2011-03-03 40 views
2

我正在构建基于MVVM的WPF应用程序,我面临一些问题: 我需要根据来自模型的信息构建UI,例如 我的模型包含进程列表(从XML文件加载 - 动态),每个进程包含信息(名称,图标路径等)。 foreach过程我需要建立一个单一的按钮(显示相对应的进程信息),为了做到这一点,我需要检索从viewModel到UI的进程列表(为了执行实际的UI构建),这将强制UI引用进程容器...并且将打破MVVM。通过MVVM动态UI模式

有人有任何想法如何实现这个没有打破MVVM?

很多谢谢。

+0

您不必使用MVVM每一个场景。事件驱动模型有时对某些情况更好。结帐这个论坛帖子http://forums.silverlight.net/forums/t/127825.aspx阅读Laurent R.谈论MVVM的地方。他是制作MVVM Toolkit的人。无论如何,对不起,这不是一个答案,但只是给你一个领导。 :) –

回答

7

使用绑定到ViewModel集合的ItemsControl。在ItemsControl内定义一个DataTemplate,它基本上是一个基于每个进程构建您的Button的包装。

<ItemsControl.ItemTemplate> 
    <DataTemplate> 
     <Button Content="{Binding ProcessName}"/> 
    </DataTemplate> 
    </ItemsControl.ItemTemplate>