CommunityToolkit Mvvm - 未找到命名空间

问题描述 投票:0回答:1

我尝试参考社区工具包 mvvm 来使用 [ObservableProperty]。

我刚刚使用标准模板(Nice racing car)从头开始创建了一个新的 Maui APP 项目,并且它可以工作。 我已经安装了 Communitytoolkit mvvm 和 Maui : enter image description here

但是当我添加这样的类时,它会显示 “CS0246 - 找不到类型或命名空间名称“ObservableObject”(您是否缺少 using 指令或程序集引用?) BelWriting (net8.0-ios) 、BelWriting (net8.0-maccatalyst)、BelWriting (net8.0-windows10.0.19041.0)"

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm;

namespace BelWriting.ViewModels
{
    public partial class MainPageVM : ObservableObject
    {
        [ObservableProperty]
        private int _id;
        [ObservableProperty]
        private string _name;
        [ObservableProperty]
        private string _description;

        [ICommand]
        public async void Save()
        {
            await Application.Current.MainPage.DisplayAlert("MAUI MVVM Sample", "Item Saved Successfully", "OK");
        }
    }
}

我尝试在 Windows 机器上运行它:

enter image description here

这是我的 csproj 文件的内容:

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst</TargetFrameworks>
        <TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net8.0-windows10.0.19041.0</TargetFrameworks>
        <WindowsSdkPackageVersion>10.0.19041.41</WindowsSdkPackageVersion>

        <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">11.0</SupportedOSPlatformVersion>
        <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">13.1</SupportedOSPlatformVersion>
        <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">21.0</SupportedOSPlatformVersion>
        <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</SupportedOSPlatformVersion>
        <TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</TargetPlatformMinVersion>
        <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tizen'">6.5</SupportedOSPlatformVersion>
    </PropertyGroup>

我错过了什么?!? 问题是否来自目标框架以及如何解决?

namespaces frameworks maui maui-community-toolkit
1个回答
0
投票

根据文档,ObservableObject位于

Microsoft.Toolkit.Mvvm.ComponentModel
命名空间中,因此您需要为该命名空间添加
using
语句

请注意,如果右键单击错误,Visual Studio 会向您建议常见的解决方案,包括修复丢失的 using 指令

© www.soinside.com 2019 - 2024. All rights reserved.