我使用库Microsoft.Toolkit.Mvvm
,我ViewModel
继承自ObservableObject
(它有一个方法SetProperty
。出于某种我不明白的原因,文档中的方法重载和现实有些不同,但即使是那些,也不可能重载。方法签名如下:
protected bool SetProperty<T> (T oldValue, T newValue, Action<T> callback, string? propertyName = default);
在视图模型中:
private bool _enableInbound;
public bool EnableInbound
{
get { return _enableInbound; }
set
{
SetProperty(ref _enableInbound, value, callback: new System.Action<bool>((target) =>
{
}));
}
}
但是,当您尝试使用它时,它会像这样出现在屏幕上。我尝试Action
通过该方法,我也尝试只使用没有 的 lambda new Action
,结果是一样的。可能是什么问题呢?
错误文字:Error CS1615 Argument 1 may not be passed with the 'ref' keyword
有一个明确的签名,就在您链接的文档中
SetProperty<T>(T, T, Action<T>, String)
。为什么你认为它可以用作SetProperty<T>(ref T, T, Action<T>, String)
?T
和之间ref T
有区别这是我在这个库中看到的所有重载
其中,没有一个可以同时发送
ref
回调。最重要的是 - 为什么你需要在那里回调?