Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.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
C# 在.NET Core上的Studio代码中找不到ICollectionView_C#_.net Core_Avaloniaui - Fatal编程技术网

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?这是一个便携式解决方案,也更加灵活。