Есть ли лучший способ установить свойство Read-Write, чем с WhenAnyValue и BindTo? - PullRequest
0 голосов
/ 17 октября 2018

У меня есть свойство чтения-записи

    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.

Есть ли лучшее решение?Я неправильно использую свойство чтения-записи в этом случае?

1 Ответ

0 голосов
/ 17 октября 2018

Вы можете использовать Observable As Property Helper , чтобы установить значение свойства в модели представления.Затем вы хотите привязать к представлению.

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.SerialNumber

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...