在WPF中,是否有一种无需后备字段即可绑定属性的方法?

时间:2019-01-15 20:22:46

标签: c# wpf xaml

在下面的示例中,后备字段不执行任何类型的计算,而只是返回一个值。有没有办法在不需要后备字段的情况下编写此代码?我并没有真正看到在这种情况下拥有一个的目的。如果我的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 :(得分:2)

尽管后备字段未执行任何计算,但它用于存储Age属性的值。您需要它以便在getter中返回值并在setter中分配新值。如果您没有它,吸气剂还会返回什么?二传手会存储什么?

也许您习惯于使用自动属性,但您似乎不使用辅助字段。当您的getter和setter除了返回并分配该属性外,什么都不做时,自动属性是一种简写形式。但是,由于要执行其他操作(即OnPropertyChanged("Age")),因此无法使用自动属性,因此必须使用后备字段对getter和setter进行手工编码。参见Auto-Implemented Properties