Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xaml 将多个类的数据绑定到单个列表视图/xamarin表单_Xaml_Xamarin_Data Binding_Portable Class Library_Shared Project - Fatal编程技术网

Xaml 将多个类的数据绑定到单个列表视图/xamarin表单

Xaml 将多个类的数据绑定到单个列表视图/xamarin表单,xaml,xamarin,data-binding,portable-class-library,shared-project,Xaml,Xamarin,Data Binding,Portable Class Library,Shared Project,您好,我如何通过xaml将多个类的数据绑定到单个列表视图。我成功地将数据从单个类绑定到lisview,但当我尝试绑定多个类的数据时,它在xaml中没有显示任何内容。您不能“直接”这样做。 由于所有UIElement控件只有一个BindingContext属性,因此一次只能绑定一个对象 在MVVM模式中,您可以实现ViewModel类来对所有需要的数据进行分组,以显示在相关页面上 因此,对于您的“Listview”,我建议您在ViewModel中创建一个属性,该属性引用一个新对象,该对象只是要连接

您好,我如何通过xaml将多个类的数据绑定到单个列表视图。我成功地将数据从单个类绑定到lisview,但当我尝试绑定多个类的数据时,它在xaml中没有显示任何内容。

您不能“直接”这样做。 由于所有
UIElement
控件只有一个
BindingContext
属性,因此一次只能绑定一个对象

在MVVM模式中,您可以实现ViewModel类来对所有需要的数据进行分组,以显示在相关页面上

因此,对于您的“Listview”,我建议您在ViewModel中创建一个属性,该属性引用一个新对象,该对象只是要连接到Listview的所有类的属性

一个简单的例子:

/// 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实现了一个名为“VmAggregatedDataProp”的类型为
ListviewAggregatedData
的属性,则可以有如下内容:

        <ListView
            BindingContext="{Binding VmAggregatedDataProp}"
            Header="{Binding ListViewDataPart1.Title}"
            ItemsSource="{Binding ListViewDataPart2.AllMyItems}"
            />

本例中的绑定名称必须替换为您自己的属性。。。
请告诉我是否清楚…

您能提供您试图绑定到的xaml和ViewModels的一个片段吗?您就在这里,但我的观点是我通过xml获取数据并将其存储在共享项目的类中,我通过viewmodel访问此数据,但我无法从xaml中的共享项目访问B类。我使用的是共享项目项目用于我的类获取、设置数据,现在我通过视图模型从我的一个共享类获取数据。但我无法显示来自其他共享项目类的数据,我使用的是MVVM方法。