C# Xamarin ListView不显示任何数据

C# Xamarin ListView不显示任何数据,c#,xaml,listview,xamarin,C#,Xaml,Listview,Xamarin,在XAML中将数据列表绑定到我的ListView时,我遇到了一个问题,即我试图在我的应用程序中的ListView中显示数据。ListView根本不填充任何数据 以下是我所有的编码: 我的代码隐藏 有人能告诉我或让我看看我在装订方面做错了什么吗?或者如果您需要更多信息或代码,请询问!我很乐意提供更多信息。:) 编辑 我已经更新了我的RandomList类并实现了INotifyPropertyChanged,但是我仍然无法通过XAML绑定在我的ListView中加载数据 using System.C

在XAML中将数据列表绑定到我的ListView时,我遇到了一个问题,即我试图在我的应用程序中的
ListView
中显示数据。ListView根本不填充任何数据

以下是我所有的编码:

我的代码隐藏

有人能告诉我或让我看看我在装订方面做错了什么吗?或者如果您需要更多信息或代码,请询问!我很乐意提供更多信息。:)

编辑

我已经更新了我的
RandomList
类并实现了
INotifyPropertyChanged
,但是我仍然无法通过XAML绑定在我的ListView中加载数据

using System.ComponentModel;

namespace RandomTest
{
    public class RandomList : INotifyPropertyChanged
    {
        public int Id { get; set; }

        string _name;
        public string Name
        {
            get { return _name; }
            set
            {
                if (_name != value)
                    _name = value;
                OnPropertyChanged("Name");
            }
        }

        string _surname;
        public string Surname
        {
            get { return _surname; }
            set
            {
                if (_surname != value)
                    _surname = value;
                OnPropertyChanged("Surname");
            }
        }

        string _school;
        public string School
        {
            get { return _school; }
            set
            {
                if (_school != value)
                    _school = value;
                OnPropertyChanged("School");
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;
        void OnPropertyChanged(string propertyName)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}
编辑2

这就是我的MainUI.xaml.cs页面目前的样子:

public partial class MainUI : ContentPage
{
    public MainUI()
    {
        InitializeComponent();
        BindingContext = new MainUIModel();

        MainUIModel mainUIModel = (MainUIModel)this.BindingContext;
        mainUIModel.randomList.Add(new RandomList { Name = "Susan", Surname = "Potgieter", School = "Oosterlig" });
        mainUIModel.randomList.Add(new RandomList { Name = "Jonathan", Surname = "Visagie", School = "Elspark" });
        mainUIModel.randomList.Add(new RandomList { Name = "Gerhard", Surname = "Vermaak", School = "E.G. Jansen" });
        mainUIModel.randomList.Add(new RandomList { Name = "Kobus", Surname = "Jacobs", School = "Oosterlig" });
    }
}

创建模型MainUIModel

public class MainUIModel : INotifyPropertyChanged
{
    ObservableCollection<RandomList> _randomList;
    public ObservableCollection<RandomList> randomList
    {
        get { return _randomList; }
        set
        {
            if (_randomList != value)
                _randomList = value;
            OnPropertyChanged("randomList");
        }
    }


    public event PropertyChangedEventHandler PropertyChanged;
    void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}
Xaml中的绑定随机列表将引用这个新创建的模型,您的姓名将引用列表模型。两种绑定上下文都不同。您可以使用以下代码添加数据

MainUIModel mainUIModel = (MainUIModel)this.BindingContext;
mainUIModel.randomList=new ObservableCollection<RandomList>();
    mainUIModel.randomList.Add(new RandomList { Name = "Susan", Surname = "Potgieter", School = "Oosterlig" });
    mainUIModel.randomList.Add(new RandomList { Name = "Jonathan", Surname = "Visagie", School = "Elspark" });
    mainUIModel.randomList.Add(new RandomList { Name = "Gerhard", Surname = "Vermaak", School = "E.G. Jansen" });
    mainUIModel.randomList.Add(new RandomList { Name = "Kobus", Surname = "Jacobs", School = "Oosterlig" });  
MainUIModel MainUIModel=(MainUIModel)this.BindingContext;
mainUIModel.randomList=新的ObservableCollection();
mainUIModel.randomList.Add(新的randomList{Name=“Susan”,Name=“Potgieter”,School=“Oosterlig”});
mainUIModel.randomList.Add(新的randomList{Name=“Jonathan”,姓氏=“Visagie”,School=“Elspark”});
mainUIModel.randomList.Add(新的randomList{Name=“Gerhard”,Name=“Vermaak”,School=“E.G.Jansen”});
mainUIModel.randomList.Add(新的randomList{Name=“Kobus”,Name=“Jacobs”,School=“Oosterlig”});

实际上,您所需要做的就是确保
可观察的收集
有一个
公共getter
。然后,您可以设置
BindingContext=this
,并在UI上访问它。但与往常一样,有许多方法可以剥这些小猫的皮。

您的模型中是否继承了
inotifypropertychange
,您可能已将其设置为
BindingContext
?您好:)否我没有类的INotifyPropertyChanged。你认为这有帮助吗?这很奇怪,因为我可以在代码中设置listview的itemsource,它会显示所有数据,但在XAML中不起作用…:|是的,这在您的模型中是必需的。@CareTaker22我将在类中测试
INotifyPropertyChanged
,并让您知道它是否有效。谢谢我已经用我实现的类更新了我的类和我的问题
INotifyPropertyChanged
,但它仍然没有返回任何数据。XAML中的绑定可能是错误的吗?谢谢你的回答。我按照您的建议进行了操作,但我得到了错误
System.NullReferenceException:对象引用未设置为对象的实例
,位于以下行:
MainUIModel MainUIModel=(MainUIModel)this.BindingContext。你把这一行放在哪里了?它必须在您的MainUI页面中,因为bindingcontext将在MainUI页面上设置,
也引用您的MainUI页面。在我的
公共类应用程序:应用程序
窗口中,我将虚拟数据添加到列表中。否,它将不起作用,
将引用您的应用程序类。我已将该行添加到
MainUI
页面,但它仍会给我相同的错误。我还添加了列表编码,将数据添加到我的
randomList
MainUI页面。我真的不知道我是否做错了什么,但是我已经更新了我的问题,这样你就可以更好地了解我做错了什么。很抱歉给您带来不便!
public partial class MainUI : ContentPage
{
    public MainUI()
    {
        InitializeComponent();
        BindingContext = new MainUIModel();

        MainUIModel mainUIModel = (MainUIModel)this.BindingContext;
        mainUIModel.randomList.Add(new RandomList { Name = "Susan", Surname = "Potgieter", School = "Oosterlig" });
        mainUIModel.randomList.Add(new RandomList { Name = "Jonathan", Surname = "Visagie", School = "Elspark" });
        mainUIModel.randomList.Add(new RandomList { Name = "Gerhard", Surname = "Vermaak", School = "E.G. Jansen" });
        mainUIModel.randomList.Add(new RandomList { Name = "Kobus", Surname = "Jacobs", School = "Oosterlig" });
    }
}
public class MainUIModel : INotifyPropertyChanged
{
    ObservableCollection<RandomList> _randomList;
    public ObservableCollection<RandomList> randomList
    {
        get { return _randomList; }
        set
        {
            if (_randomList != value)
                _randomList = value;
            OnPropertyChanged("randomList");
        }
    }


    public event PropertyChangedEventHandler PropertyChanged;
    void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}
BindingContext = new MainUIModel();
MainUIModel mainUIModel = (MainUIModel)this.BindingContext;
mainUIModel.randomList=new ObservableCollection<RandomList>();
    mainUIModel.randomList.Add(new RandomList { Name = "Susan", Surname = "Potgieter", School = "Oosterlig" });
    mainUIModel.randomList.Add(new RandomList { Name = "Jonathan", Surname = "Visagie", School = "Elspark" });
    mainUIModel.randomList.Add(new RandomList { Name = "Gerhard", Surname = "Vermaak", School = "E.G. Jansen" });
    mainUIModel.randomList.Add(new RandomList { Name = "Kobus", Surname = "Jacobs", School = "Oosterlig" });