簡體   English   中英

在 WPF 中,有沒有辦法在不需要支持字段的情況下綁定屬性?

[英]In WPF, is there a way to bind properties without requiring a backing field?

在下面的示例中,支持字段不執行任何類型的計算,只是返回一個值。 有沒有辦法在不需要支持字段的情況下編寫它? 在這種情況下,我並沒有真正看到擁有一個的目的。 如果我的 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--;
}

盡管支持字段不執行任何計算,但它用於存儲Age屬性的值。 您需要它來返回 getter 中的值並在 setter 中分配新值。 如果你沒有它,getter 會返回什么? 二傳手會存儲什么?

也許您已經習慣了自動屬性,您似乎不使用支持字段。 當你的 getter 和 setter 除了返回和分配屬性之外什么都不做時,自動屬性是一種簡寫。 但是,因為您正在做其他事情(即OnPropertyChanged("Age") ),您不能使用自動屬性,因此必須使用支持字段手動編碼 getter 和 setter。 請參閱自動實現的屬性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM