C# 如何在Visual Studio 2019和Avalonia 0.8.3中成功使用DataGrid控件

C# 如何在Visual Studio 2019和Avalonia 0.8.3中成功使用DataGrid控件,c#,xaml,avalonia,C#,Xaml,Avalonia,我已经在VisualStudio2019中使用Avalonia MVVM应用程序模板启动了一个全新的项目。我已经包括了NuGet的Avalonia、Avalonia.Desktop、Avalonia.Controls.DataGrid和Avalonia.ReactiveUI包,并将它们全部更新为0.8.3版。我尝试在表单上放置的第一个控件是DataGrid,它由一个简单的PersonModel类支持 每次我试图运行程序时,都会出现一个错误。这是我尝试使用Avalonia的第一个项目,我对WPF或

我已经在VisualStudio2019中使用Avalonia MVVM应用程序模板启动了一个全新的项目。我已经包括了NuGet的Avalonia、Avalonia.Desktop、Avalonia.Controls.DataGrid和Avalonia.ReactiveUI包,并将它们全部更新为0.8.3版。我尝试在表单上放置的第一个控件是DataGrid,它由一个简单的PersonModel类支持

每次我试图运行程序时,都会出现一个错误。这是我尝试使用Avalonia的第一个项目,我对WPF或UWP几乎没有经验,所以我完全迷路了。请帮我弄清楚如何在我的表单上获取DataGrid

下面是我对任何东西所做的唯一改变。其他一切都与模板完全一样,在我尝试添加DataGrid之前,它一直有效

PersonModel.cs

使用系统;
使用System.Collections.Generic;
使用系统文本;
名称空间MyrinaUI.Models{
公共类个人模型{
公共int部门编号{get;set;}
公共字符串DeskLocation{get;set;}
public int EmployeeNumber{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
}
}
MainWindowViewModel.cs

使用MyrinaUI.Models;
使用制度;
使用System.Collections.Generic;
使用System.Collections.ObjectModel;
使用系统文本;
命名空间MyrinaUI.ViewModels
{
公共类MainWindowViewModel:ViewModelBase
{
公共可观察集合人员{get;}
公共主窗口视图模型(){
People=新的observeCollection(GenerateMockPeopleTable());
}
私有IEnumerable GenerateMockPeopleTable(){
var defaultPeople=新列表(){
新人物模型(){
FirstName=“Pat”,
LastName=“Patterson”,
EmployeeNumber=1010,
部门编号=100,
DeskLocation=“B3F3R5T7”
},
新人物模型(){
FirstName=“Jean”,
LastName=“琼斯”,
EmployeeNumber=1011,
部门编号=101,
DeskLocation=“B3F3R5T8”
},
新人物模型(){
FirstName=“特里”,
LastName=“汤普森”,
雇员人数=2010,
部门编号=200,
DeskLocation=“B3F3R5T9”
},
};
还人,;
}
}
}
App.xaml:


}DataGrid'.

答案在github上。如果它不能立即工作,请尝试重新启动visual studio。

听起来像。我可以确认发布在那里的解决方案是有效的。它听起来确实像是同一个问题,但我在github的“问题”部分发现了另一个帖子,认为它不再必要了。不可否认,我直到现在才真正尝试,但它没有帮助。你说它没有帮助是什么意思?使用该解决方案时是否出现错误?哪里有帖子说不再需要了?奇怪的是,我从appl.xaml中取出了StyleInclude,并尝试使用.UseDataGrid()运行它;在AppBuilder上,按照上面链接的帖子中的建议。它编译并运行时没有问题,但没有显示数据网格。我添加了StyleInclude并保存,错误又回来了。然后我重新启动了VisualStudio,现在它可以工作了。所以我想这终究是解决办法。谢谢赫罗塔。我说的“没有帮助”是指它没有以任何方式改变行为。下面是一篇文章,说明不再需要UseDataGrid()部分。我目前找不到一篇文章说该解决方案的xaml部分是不必要的。我可能看错了什么。不管怎么说,它看起来确实有效,而VisualStudio只是处于某种奇怪的状态。再次感谢。如果你想用这个作为答案发表一篇真正的帖子,我会接受的。