В WPF есть ли способ связать свойства без обязательного поля поддержки? - PullRequest
0 голосов
/ 15 января 2019

В приведенном ниже примере поле поддержки не выполняет никаких типов вычислений и просто возвращает значение. Есть ли способ написать это, не требуя вспомогательного поля? Я на самом деле не вижу смысла иметь его в этом случае. Если мой XAML напрямую связан с Age, я не знаю, зачем мне также нужно _age.

private int _age;
public int Age
{
    get {return _age; }
    set
    {
        _age = value;
        OnPropertyChanged("Age");
    }
}

private void ButtonClickIncrease(object sender, RoutedEventArgs e)
{
    Age++;
}
private void ButtonClickDecrease(object sender, RoutedEventArgs e)
{
    Age--;
}

1 Ответ

0 голосов
/ 16 января 2019

Хотя вспомогательное поле не выполняет никаких вычислений, оно используется для хранения значения свойства Age. Это необходимо для того, чтобы вернуть значение в получателе и назначить новое значение в установщике. Если бы у вас его не было, что бы вернул геттер? Что бы мог сохранить сеттер?

Возможно, вы привыкли к автоматическим свойствам, где вы, кажется, не используете вспомогательное поле. Автоматические свойства - это сокращение, когда ваши методы получения и установки ничего не делают, кроме как возвращают и присваивают свойство. Однако, поскольку вы делаете что-то еще (то есть OnPropertyChanged("Age")), вы не можете использовать автоматическое свойство и поэтому должны вручную кодировать метод получения и установки, используя вспомогательное поле. См. Автоматически реализуемые свойства .

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