有没有比使用 WhenAnyValue 和 BindTo 更好的方法来设置 Read-Write 属性?



我有一个读写属性

private string _serialNumber;
public string SerialNumber
{
get => _serialNumber;
set => this.RaiseAndSetIfChanged(ref _serialNumber, value);
}

Product属性更改时,我需要更新。为此,我使用WhenAnyValueBindTo

this.WhenAnyValue(x => x.Product)
.Where(x => x != null)
.Select(x => x.FirstOrDefault())
.BindTo(this, x => x.SerialNumber);

但是,我不确定这是否是最佳方法,因为我找不到任何使用WhenAnyValue更新读写属性的示例。

有没有更好的解决方案?在这种情况下,我是否错误地使用了读写属性?

可以使用"可观察作为属性帮助程序"在视图模型中设置属性的值。 然后,您希望绑定到视图。

ObservableAsPropertyHelper<string> _serialNumber;
public string SerialNumber => _serialNumber.Value;
_serialNumber = this.WhenAnyValue(x => x.Product)
.Where(x => x != null)
.Select(x => x.FirstOrDefault()).ToProperty(this, x => SerialNumber);

然后只需将视图绑定到 ViewModel.序列号

最新更新