为 ListView 添加单独的 ItemsSource 更容易。如果这是您正在寻找的。
可以使用 MainViewModel 中的两个属性来完成。
XAMl
<ListView
ItemsSource="{Binding ListSource1}">
</ListView>
<ListView
Grid.Column="1"
ItemsSource="{Binding ListSource2}">
</ListView>
ViewModel 类
public class MainViewModel
{
public ObservableCollection<string> ListSource1 { get; set; }
public ObservableCollection<string> ListSource2 { get; set; }
public MainViewModel()
{
ListSource1 = new ObservableCollection<string>()
{
"I'm from first viewmodel",
"I'm from first viewmodel",
"I'm from first viewmodel",
"I'm from first viewmodel",
"I'm from first viewmodel",
"I'm from first viewmodel"
};
ListSource2 = new ObservableCollection<string>()
{
"I'm from second ViewModel",
"I'm from second ViewModel",
"I'm from second ViewModel",
"I'm from second ViewModel",
"I'm from second ViewModel",
"I'm from second ViewModel"
};
}
}
如果您希望添加来自不同 ViewModel 的源代码。
ListSource1 = new ViewModel1().ListSource;
ListSource2 = new ViewModel2().ListSource;
如果您希望设置 ListView 的 BindingContext,可以按照 Marco 的建议通过绑定 Binding Context 本身来完成。
但您还需要将 ViewModel 作为属性添加到主 ViewModel。
public ViewModel1 FirstViewModel { get; set; }
public ViewModel2 SecondViewModel { get; set; }
Xaml:
<ListView
BindingContext="{Binding FirstViewModel}"