Вы не можете сделать это «напрямую».Поскольку все элементы управления UIElement
имеют только одно свойство BindingContext
, вы можете связывать только один объект за раз.
В шаблонах MVVM реализованы классы ViewModel для группировки всех необходимых данных для отображения на связанной странице....
Поэтому для вашего 'Listview' я предлагаю вам создать свойство в вашей ViewModel, которое ссылается на новый объект, который является просто агрегацией всехклассы, которые вы хотите подключить к списку.
Простой пример:
/// Data A needed for your listview
public class DataA { ... }
/// Data B needed for your listview
public class DataB { ... }
///
/// You will make a property of this type into your viewModel
///
public class ListviewAggregatedData : INotifyPropertyChanged
{
private DataA _listviewDataPart1;
private DataB _listviewDataPart2;
public DataA ListViewDataPart1
{
get => _listviewDataPart1;
set { _listviewDataPart1 = value; PropertyChanged?.Invoke(...); }
}
public DataA ListViewDataPart2
{
get => _listviewDataPart2;
set { _listviewDataPart2 = value; PropertyChanged?.Invoke(...); }
}
// ....
}
и в вашем xaml , предполагая, что ваш viewModel реализует свойство типа ListviewAggregatedData
называется 'VmAggregatedDataProp', у вас может быть что-то вроде этого:
<ListView
BindingContext="{Binding VmAggregatedDataProp}"
Header="{Binding ListViewDataPart1.Title}"
ItemsSource="{Binding ListViewDataPart2.AllMyItems}"
/>
В этом примере имена привязок должны быть заменены вашими собственными свойствами ... Скажите, если все ясно ...