簡體   English   中英

數組更改事件

[英]Array change event

我有一個名為Value的數組屬性:

public string[,] Value { get; set; }

我想在數組的任何值(而不是整個數組)發生更改時調用Save()方法。

有沒有一種簡單的方法來實現它?

並不是的。 數組是非常原始的類型,當事情發生變化時不會通知您。

您可以做的最好的事情是創建一個類似2D數組的自定義類型,但此外,它會在元素發生更改時引發事件。 然后,您當前的課程將訂閱此活動並調用Save()

一些額外的評論:

  • 您可能不希望公開setter,這允許人們更改您指向的數組。 您可能希望僅公開getter,因此它們可以更改值,但不能更改整個數組。
  • 可能已經存在我提到的類型,我不知道一個類型。
  • 如果您要改變API,那么在類上公開索引器可能更有意義,然后在調用索引器的setter時調用Save() 見下文。
public string this[int x, int y] 
    { 
        get { return this.localArray[x,y]; }
        set 
        { 
            this.localArray[x,y] = value;
            this.Save();
        }
    }

不要使用數組。 想想ObservableCollection <>,如果盒子里的那個不符合您的需要,請自己制作。 並刪除setter,您不希望客戶端代碼中斷您的通知。

為什么不創建一個自己的索引器(就像這里的索引器一樣,這樣你就可以准確地知道你的“數組”何時更新了?你可以從setter中調用Save

暫無
暫無

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

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