You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CommunityToolkit.MVVM的[ObservableProperty] setter中调用方法?

在CommunityToolkit.MVVM的[ObservableProperty] setter中调用方法的方案

使用CommunityToolkit.MVVM的源代码生成器时,要在属性值变更后执行自定义逻辑(比如调用LoadPerson),可以通过实现生成器自动创建的partial变更方法来实现:

  1. 源代码生成器会为标记[ObservableProperty]的字段自动生成一个名为On[PropertyName]Changed的partial方法,该方法会在属性值成功变更后触发。
  2. 在ViewModel中手动实现这个partial方法,在方法内部调用你的LoadPerson逻辑即可。

示例代码如下:

public partial class MainViewModel : ObservableObject
{
    [ObservableProperty]
    string person;

    // 实现生成器自动创建的partial方法,属性变更后触发
    partial void OnPersonChanged(string oldValue, string newValue)
    {
        LoadPerson();
    }

    [RelayCommand]
    private void LoadPerson()
    {
        Person = "Hello World";
    }
}

补充说明

  • partial方法的签名必须严格匹配:partial void On[PropertyName]Changed(T oldValue, T newValue),其中T是属性的类型,参数可以根据需求选择使用(即使不用也要保留签名)。
  • 如果需要在属性值变更前执行逻辑,可以实现对应的On[PropertyName]Changing partial方法。

内容的提问来源于stack exchange,提问作者Moha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 06:32:04