我有一个读写属性
private string _serialNumber;
public string SerialNumber
{
get => _serialNumber;
set => this.RaiseAndSetIfChanged(ref _serialNumber, value);
}
我需要更新
Product
属性变化。我用 WhenAnyValue
和 BindTo
以此目的。this.WhenAnyValue(x => x.Product)
.Where(x => x != null)
.Select(x => x.FirstOrDefault())
.BindTo(this, x => x.SerialNumber);
但是,我不确定这是否是最好的方法,因为我找不到任何使用
WhenAnyValue
更新读写属性的示例。 .有更好的解决方案吗?在这种情况下,我是否错误地使用了读写属性?
最佳答案
您可以使用Observable As Property Helper在 View 模型中设置属性的值。然后你想绑定(bind)到 View 。
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);
然后只需将 View 绑定(bind)到 ViewModel.SerialNumber
关于c# - 有没有比使用 WhenAnyValue 和 BindTo 更好的方法来设置读写属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52863077/