mvvm - 如何将多个视图模型绑定到单个视图
问题描述
我在一个内容页面上有两个列表视图,因此我希望每个列表视图都有自己的视图模型作为 itemoruce。
解决方案
只需为您的 ListView 设置 BindingContext。
在 Xaml 中:
<ListView x:Name="list1">
</ListView>
<ListView x:Name="list2">
</ListView>
在后面的代码中绑定它:
list1.BindingContext = ViewModel1;
list2.BindingContext = ViewModel2;
如果您希望在后面的代码中绑定它,您也可以在 XAML 中使用 BindingContext-Property:
<ListView ItemSource="{Binding itemList1}" BindingContext="{Binding ViewModel1}" />
<ListView ItemSource="{Binding itemList2}" BindingContext="{Binding ViewModel2}" />
但请记住,您需要一个“全局”绑定模型(或 MasterViewModel),它将嵌套的视图模型保留为子属性。