C# get => new RelayCommand<string>(str =>
时间: 2024-10-17 18:15:36 浏览: 27
在 C# 中,`get => new RelayCommand<string>(str =>` 这段代码片段通常用于创建一个简化的命令(Command)实例,尤其是当你想要创建一个依赖于某个字符串参数(`string str`)的命令时。`RelayCommand` 是 `MVVM(Model-View-ViewModel)` 设计模式中的一个常用类,它封装了命令的行为并提供松耦合。
`get =>` 部分表示这个命令可能是来自于属性的计算属性,也就是当属性发生变化时自动创建的新命令。当你看到这样的语法,这通常意味着在属性的getter方法里动态创建了一个处理事件的委托,并绑定到特定的操作上。
举个例子,假设你在 ViewModel 类中有一个需要响应用户输入的命令:
```csharp
private string _myString;
public string MyString {
get { return _myString; }
set {
_myString = value;
ExecuteMyCommand();
}
}
private RelayCommand<string> _myCommand;
public RelayCommand<string> MyCommand {
get => _myCommand ??= new RelayCommand<string>(ExecuteAction);
}
private void ExecuteAction(string input) {
// 当接收到字符串 input 并满足条件时执行相应操作
// ...
}
```
在这个场景中,每当 `MyString` 的值改变时,`ExecuteMyCommand()` 方法会被调用,如果 `_myCommand` 未初始化,则会创建一个新的 `RelayCommand` 对象,并传入 `ExecuteAction` 作为处理函数。
阅读全文