重复控制n次并绑定每个实例

时间:2011-07-02 10:26:45

标签: c# wpf c#-4.0 mvvm binding

我试图找出一种不那么混乱的方式来重复控件 n 次,具体取决于绑定模型的属性值。然而, n 控件的第一个 m 应该以不同方式显示,而 m 绑定到ViewModel的不同属性。为了说明问题,请考虑我有一个像这样的ViewModel( n Display m Checked这里):

public class MyViewModel : ViewModelBase {
    public int Display { get; set; }
    public int Checked { get; set; }
    /* ... */
}

对于Display = 5, Checked = 3,视图应该呈现以下内容:

(X) (X) (X) ( ) ( )

每个(X)( )都应该是同一子视图类型的实例。现在,当用户点击第五个(最后一个)控件时,Checked应设置为5,现在将显示视图

(X) (X) (X) (X) (X)

现在,我可以通过挂钩一些事件处理程序并在( )更改时以编程方式添加和绑定Display实例来实现此目的。我确实想知道是否有更简洁,更简洁的方法来实现这一点。

1 个答案:

答案 0 :(得分:2)

将ViewModel视为View的模型。因此,如果要在视图中显示项目集合,则必须在ViewModel上提供该集合。

在这种情况下,向ViewModel添加一个集合,该集合在Display和Checked的值发生更改时会发生变化。然后将ItemsControl绑定到集合并为项目提供ItemTemplate。