Как привязать TextBox к пустому свойству, только если установлен флажок - PullRequest
0 голосов
/ 01 декабря 2018

Мне нужно привязать TextBox.Text к свойству, если отмечен CheckBox рядом с ним.В противном случае значение свойства должно быть нулевым.

TextBox binding to nullable

Допустим, класс DTO имеет вид:

public class DataForInputDTO 
{
    public double? Power {get; set;}
    public double? Speed {get; set;} 
    // Other Properties
}

Теперь, когда пользовательснимает флажок Speed ​​ CheckBox TextBox рядом с ним отключается (это нормально), но мне также нужно свойство Speed ​​, чтобы получить ноль вместо 60 .Есть ли способ сделать это без изменения вручную привязки на CheckBox.CheckedChaneg?

1 Ответ

0 голосов
/ 01 декабря 2018

Вы можете установить через свойство, к которому привязан Speed ​​CheckBox.Например, если флажок «Свойство скорости IsChecked» связан со свойством IsSpeedChecked, вы можете сделать следующее.

    private double _powerValue = 0;

    public double? Power { get; set; } = 0;

    public bool IsPowerEnabled
    {
        get => _isPowerEnabled;
        set
        {
            _isPowerEnabled = value;
            if (!value)
            {
                _powerValue = Power.Value;
                Power = null;
            }
            else
            {
                Power = _powerValue;
            }
            NotifyOfPropertyChange(nameof(Power));
            NotifyOfPropertyChange(nameof(IsPowerEnabled));
        }
    }
...