C# 在.NET Core上的Studio代码中找不到ICollectionView
我有一个C# 在.NET Core上的Studio代码中找不到ICollectionView,c#,.net-core,avaloniaui,C#,.net Core,Avaloniaui,我有一个XAML和一个MVVM显示一个DataGrid和一个observedcollection。 一切正常(更多细节在我之前的文章中,我已经回答了,) 现在我正在尝试添加一个过滤器,我想跟随@mark heath 我的项目构建抛出以下内容 error CS0246: The type or namespace name 'ICollectionView' could not be found (are you missing a using directive or an assembly r
XAML
和一个MVVM
显示一个DataGrid
和一个observedcollection
。
一切正常(更多细节在我之前的文章中,我已经回答了,)
现在我正在尝试添加一个过滤器,我想跟随@mark heath
我的项目构建抛出以下内容
error CS0246: The type or namespace name 'ICollectionView' could not be found (are you missing a using directive or an assembly reference?)
尽管我确实包括了
关于哪个Studio代码显示不必要,请改用指令。
My.csproj位于.NET Core 3.0上
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
它使用.NET Framework还原包,但这可能是错误的,因为我使用的是.NET内核和Linux
哪种方法正确?除了“你不能那样做”的回答。。。可能还有另一个,相当于要添加的包。。。从Avalonia用户界面开始?有人知道或使用它吗
搜索Avalonia UI github并询问gitter
我知道这件事已经结束了,也许现在有解决办法了?(我也在问Avalonia UI)首先,即使是在WPF和Windows上,根据我的观点,教程也是错误的:
您需要绑定到ICollectionView
,而不是
ObservableCollection
查看过滤效果
因此,视图必须固定如下
<DataGrid Items="{Binding PeopleView}"
作为所需命名空间中包含的DataGridCollectionView
using Avalonia.Collections;
我终于可以实现这个过滤器了
public MainWindowViewModel()
{
People = new ObservableCollection<Person>(GenerateMockPeopleTable());
PeopleView = new DataGridCollectionView(People);
PeopleView.Filter = o => String.IsNullOrEmpty(Filter) ? true : ((Person)o).FirstName.Contains(Filter);
}
public主窗口视图模型()
{
People=新的observeCollection(GenerateMockPeopleTable());
PeopleView=新建DataGridCollectionView(人员);
PeopleView.Filter=o=>String.IsNullOrEmpty(Filter)?true:((Person)o).FirstName.Contains(Filter);
}
首先,即使是在WPF和Windows上,根据我的观点,教程也是错误的:
您需要绑定到ICollectionView
,而不是
ObservableCollection
查看过滤效果
因此,视图必须固定如下
<DataGrid Items="{Binding PeopleView}"
作为所需命名空间中包含的DataGridCollectionView
using Avalonia.Collections;
我终于可以实现这个过滤器了
public MainWindowViewModel()
{
People = new ObservableCollection<Person>(GenerateMockPeopleTable());
PeopleView = new DataGridCollectionView(People);
PeopleView.Filter = o => String.IsNullOrEmpty(Filter) ? true : ((Person)o).FirstName.Contains(Filter);
}
public主窗口视图模型()
{
People=新的observeCollection(GenerateMockPeopleTable());
PeopleView=新建DataGridCollectionView(人员);
PeopleView.Filter=o=>String.IsNullOrEmpty(Filter)?true:((Person)o).FirstName.Contains(Filter);
}
您是否考虑过使用而不是CollectionViewSource?这是一个更灵活的便携式解决方案。您是否考虑过使用而不是CollectionViewSource?这是一个便携式解决方案,也更加灵活。