我有5个按钮和一个ListBox
单击每个按钮我想将ListBox项目源绑定到Button引用的其他集合。
到目前为止,我的想法是 制作一个带有一个参数的命令,例如按钮名称和调用包含switch语句的函数,然后在代码中更改itemssource绑定。我是mvvm的新手,你能不能给我一个更好的方法?
答案 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;