通过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