通过MVVM模式的动态UI

时间:2011-03-03 14:45:09

标签: wpf mvvm

我正在构建基于MVVM的wpf应用程序,我遇到了一些问题: 例如,我需要根据模型中的信息构建UI 我的模型包含一个进程列表(从XML文件加载 - 动态),每个进程包含信息(名称,图标路径等)。 foreach进程我需要构建一个单独的按钮(显示correspands进程信息),为了做到这一点,我需要从viewModel检索进程列表到UI(为了执行实际的UI构建),这将force UI引用进程容器...并将破坏MVVM。

有人知道如何在不破坏MVVM的情况下实现这一点吗?

非常感谢。

2 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:0)

如果您需要做的不仅仅是更改按钮中的文字,您可以使用DataTemplateSelector

相关问题