将项源绑定到视图模型中的多个集合

本文关键字:集合 模型 视图 绑定 | 更新日期: 2023-09-27 18:36:15

我有5个按钮和一个列表框

每次单击按钮时,我都希望将 ListBox 项源绑定到按钮引用的不同集合。

到目前为止,我想的是制作一个命令,该命令采用一个参数(例如按钮名称)并计算包含 switch 语句的函数,然后更改代码中的 itemsSource 绑定。

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

将项源绑定到视图模型中的多个集合

首先公开

ViewModel上的每个集合以及占位符集合CurrentList。 然后,您可以将按钮绑定到同一命令,但在绑定到关联列表的每个按钮的 CommandParameter 中:

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

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

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