将itemssource绑定到viewmodel中的多个Collections

时间:2013-10-19 19:30:03

标签: c# mvvm

我有5个按钮和一个ListBox

单击每个按钮

我想将ListBox项目源绑定到Button引用的其他集合。

到目前为止,我的想法是 制作一个带有一个参数的命令,例如按钮名称和调用包含switch语句的函数,然后在代码中更改itemssource绑定。

我是mvvm的新手,你能不能给我一个更好的方法?

1 个答案:

答案 0 :(得分:3)

首先公开ViewModel上的每个集合以及占位符集合CurrentList。然后,您可以将按钮绑定到相同的命令,但是在每个命令的参数框中绑定到关联的列表:

<Button Command="{Binding SwitchCommand}" CommandParameter="{Binding List1}">List 1</Button>
<Button Command="{Binding SwitchCommand}" CommandParameter="{Binding List2}">List 2</Button>
<ListView ItemsSource="{Binding CurrentList}"></ListView>

在命令的execute方法中,只需将CurrentList设置为参数:

_viewModel.CurrentList = (List<string>) parameter;