- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
刚接触 .Net MAUI,正在将 CommunityToolkit.Mvvm 版本 8.0.0 与 Microsoft Visual Studio Community 2022(64 位)一起使用 - 当前版本 17.3.3
在我的 XAML 中,我有一个按钮:
<Button
Text="Add"
Command="{Binding data_addCommand}"
/>
在我的 ViewModel 中,我有以下方法:
[RelayCommand]
private void data_add()
{
}
当我构建编译器时,编译器失败并出现以下错误:
Error CS0102 The type '[my_viewmodel_name]' already contains a definition for 'data_addCommand'
但是,出于绝望,我将 XML 更改为:
<Button
Text="Add"
Command="{Binding Data_addCommand}"
/>
...在我的 ViewModel 中:
[RelayCommand]
private void Data_add()
{
}
唯一的区别是 Binding 命令中的方法名称和 ViewModel 中的方法名称以大写“D”开头,而不是小写“d”。
当我构建时,它成功完成! - ?? -- 我是否错过了文档中规定 [RelayCommand] 的方法名称必须以大写字母开头的内容?
我确实记得,当使用 [ObservableProperty] 属性时,生成的属性将自动使用 UpperCamelCase 格式作为其名称。但是,我不记得看到过任何有关 [RelayCommand] 的内容。我假设情况就是这样(请原谅双关语),并且 [RelayCommand] 属性将与 [ObservableProperty] 属性一样工作——也就是说,将使用 UpperCamelCase 格式作为方法名称——因此,必须以大写字符。
只是想知道是否有任何“官方”记录了这种行为,因为它让我陷入了困境。
提前致谢。
最佳答案
使用 MVVM CommunityToolkit 时,即当您将 NuGet 包“CommunityToolkit.Mvvm”包含到项目中,然后使用 [RelayCommand] 属性修饰方法名称时,工具包会自动生成一个支持字段 使用小写。该工具包还将自动生成 IRelayCommand 对象。
例如,如果您有以下代码:
[RelayCommand]
private void method_name()
{
}
以下代码将由 CommunityToolkit 自动生成:
// A backing field ...
private global::CommunityToolkit.Mvvm.Input.RelayCommand? method_nameCommand;
// An IRelayCommand object ...
public global::CommunityToolkit.Mvvm.Input.IRelayCommand method_nameCommand => method_nameCommand ??= new global::CommunityToolkit.Mvvm.Input.RelayCommand(new global::System.Action(method_name));
自动生成的代码会导致支持字段名称和 IRelayCommand 对象名称相同,从而导致编译器错误。
现在,如果您将方法名称更改为使用大写字符,即:
[RelayCommand]
private void Method_name()
{
}
自动生成的代码如下所示,并且会成功编译。
// A backing field ...
private global::CommunityToolkit.Mvvm.Input.RelayCommand? method_nameCommand;
// An IRelayCommand object ...
public global::CommunityToolkit.Mvvm.Input.IRelayCommand Method_nameCommand => method_nameCommand ??= new global::CommunityToolkit.Mvvm.Input.RelayCommand(new global::System.Action(Method_name));
所以 - (未记录的)经验法则似乎是:
使用 [RelayCommand] 属性修饰方法时,请确保方法名称的第一个字符为大写。
关于.net-maui - 如果方法名称以小写字符开头,.Net Maui [RelayCommand] 无法编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73562438/
.NET MAUI 中的 Border 和 Frame 之间的功能区别是什么? 根据 documentation 的边界摘要是 The .NET Multi-platform App UI (.NET
我是桌面开发的新手,我正在尝试实现一个应用程序,它可以根据列表中的选定项目动态创建包含内容的选项卡。项目已添加到 TabBar.Items 集合,但我无法在应用程序窗口中看到它们( UWP WinUI
在我的 .NET MAUI 应用程序中,我使用 .NET MAUI 社区工具包中的 AvatarView 创建一个漂亮的圆形用户头像,这很容易做到。 我现在想在图像周围放置一个漂亮的边框,但我没有得到
我正在尝试在 .NET MAUI 中实现平台特定的部分方法以获取数据库的连接字符串。 在“主应用程序”中: namespace TestApp.DL; public partial class Bas
是否有毛伊岛 map 控件。如果是这样,某处是否有教程。我不想使用第 3 方控件,我想使用 opensteetmap。我真的不想用谷歌地图。 最佳答案 不幸的是,当前 GA 版本的官方 map 功能已
我正在尝试导航到“TestView”页面,该页面位于 VisualStudio 解决方案的“Views”文件夹中。这里编译错误。 错误 XFC0000 无法解析类型“:TestView” AppShe
我正在使用AppShell在我的 .NET MAUI 应用程序中,场景如下: 我有Page1 , Page2和Page3定义为我的主选项卡 AppShell -- 见下文:
刚接触 .Net MAUI,正在将 CommunityToolkit.Mvvm 版本 8.0.0 与 Microsoft Visual Studio Community 2022(64 位)一起使用
我想使用.NET Maui创建一个新项目,在Microsoft教程中,他们说先决条件是最新的Visual Studio 2022 17.1预览版,在安装了.NET Maui的最后一个预览版本后,我从列
我基本上来自网络背景并尝试使用 .NET MAUI Blazor Hybrid。我在使用 .NET MAUI Window 开发期间遇到错误,但不确定如何调试它?我查看了所有类型的窗口,但在任何地方都
嘿,我怎么才能改变Win UI.Net Maui Picker上难看的外部边框呢?有什么办法可以禁用它吗?或者换个颜色?。还有,当你将鼠标悬停在选取器上,文本会改变颜色时,这个奇怪的错误是什么?
这是一个带有SearchBar和ListView的ContentPage。ListView正在更新为SearchBar中的用户类型。。问题是,当用户阅读ListView结果时,键盘不会自动关闭。请问,
Hey how can i change the ugly outer borders on win ui .net maui picker? Is there any way to disab
这是一个带有搜索栏和ListView的内容页面。当用户在搜索栏中键入内容时,ListView正在更新。。问题是,当用户阅读ListView结果时,键盘不会自动关闭。请问,谁知道怎么做,如果我们希望键盘
我有一个Model类Person,它有一些字符串属性。在用户界面中,当按下按钮时,在ViewModel类中有一些输入字段执行以下操作:。使用填充对象属性的字段中的值创建Person对象。将Person
我有一个Model类Person,它有一些字符串属性。在用户界面中,当按下按钮时,在ViewModel类中有一些输入字段执行以下操作:。使用填充对象属性的字段中的值创建Person对象。将Person
I'm trying to write a media player in.Net MAUI with the new MediaElement, and so far everything s
@ 目录 创建页面元素 创建可绑定对象 创建绑定服务类 拖拽(Drag) 拖拽悬停,经
前言 笔者之前在公司搭建过一套生产管理系统,该系统要求能和硬件进行串口通信,同时又要方便后台进行信息查询。笔者给出的解决方案就是: MAUI + Blazor ,这样只需要提供一套UI,就
目录 前言 准备材料 审核流程 测试报告 隐私测试报告 隐私行为数据 其他问
我是一名优秀的程序员,十分优秀!