簡體   English   中英

如何檢查屬性是否已更改WPF C#

[英]How to check a property has changed or not wpf c#

我在viewmodel Problem中有一個屬性。這屬於一個模型,其中有許多屬性,如collections,string,images。我使用此視圖模型打開一個窗口。如果屬性Problem(子屬性)值已更改。我制作了一個標志_isChanged來跟蹤更改,但它仍為false。

 public Problem Problem
    {
        get { return _problem; }
        set
        {
            if (value != _problem)
            {
                _problem = value;
                _isChanged=true;
                OnPropertyChanged("Problem");

            }
        }
    }

在我能想到的情況列表下方:

  • 永遠不會設置屬性Problem
  • 新值等於舊值
  • Problem有一個自定義operator =
  • _isChanged在其他位置設置為false
  • 您在一個對象實例上設置該值,然后檢查另一對象實例的_isChanged

這些都是在您共享的代碼之外發生的所有事情,換句話說, Problem很可能不是問題。

僅僅因為問題類內部的屬性發生變化,並不意味着屬性問題本身將發生變化。 在這些屬性中,您必須執行以下操作(假設Text是Problem類中的屬性):

public string Text {

    get { return _text; }
    set
    {
        if (value != _text)
        {
            _text = value;
            Parent.IsChanged = true;
            OnPropertyChanged("Text");
        }
    }
}

其中“父級”是對您的“問題”對象的引用。

暫無
暫無

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

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