通过MVVM动态UI模式

我正在构建基于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动态UI模式 的全部内容, 来源链接: utcz.com/qa/259431.html

回到顶部