问题
I'm migrating my project from classic .net to .net core 3.0. I use in my viewmodel ICollectionView interface and it is not recognized in .net core 3.0 framework.
I added several nuget packages to attempt to make it work, but with no luck.
Microsoft claims System.ComponentModel defines icollectionview (https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.icollectionview?view=netcore-3.0), but it is not found. I also tried to include windowsbase, but it's not found either.
Is my environment faulty ? Did I miss something ?
Thanks for your help.
Here is a small class to compile under a .netcore3 project:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
ICollectionView col =new CollectionViewSource().View;
col.Filter = null;
col.Refresh();
}
}
Edit:
Thanks to ALFA for Microsoft.Windows.SDK.Contracts which offer an ICollectionView interface on .net core, but unfortunatly, it is not complete: Filter and refresh are not implemented.
回答1:
You need to edit your project file YourProjectName.csproj from this:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
To this:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UseWPF>true</UseWPF>
</PropertyGroup>
It helps to me.
回答2:
On .NET Core 3.0+ you can install the Microsoft.Windows.SDK.Contracts package which includes all the supported Windows Runtime APIs up to Windows 10 version 1903, and will let you use ICollectionView.
The Windows 10 WinRT API Pack enables you to add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps.
回答3:
have tried importing the DLL into your .Core project ?
https://docs.microsoft.com/es-es/dotnet/api/system.windows.data.collectionview?view=netframework-4.8
You can find the PresentationFramework.dll DLL in the .Net folder,In my case I have it in
C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF
来源:https://stackoverflow.com/questions/58298028/icollectionview-with-net-core-3-0