2014-10-05 65 views
0

我有一個類,看起來像方式使用二傳手當設置元素中數組

public class MyArray 
{ 
    public bool is_set = false; 

    private int[] _myarray; 
    public int[] myarray 
    { 
     get{return _myarray;} 
     set 
     { 
      _myarray = value; 
      is_set = true; 
     } 
    } 
} 

但在設置陣列(4號線)內的項目後,下面的代碼is_set布爾讀取錯誤。

MyArray a = new MyArray(); 
    a.myarray = new int[1]; 
    a.is_set = false; 
    a.myarray[0] = 5; 

有沒有辦法讓它在我設置數組內的元素時提醒我?數組可以與列表或可觀察的集合或任何其他內容交換。

+0

顯然要在類的索引...你Array類是不是一個真正的數組反正..它只是暴露類型數組的屬性。任何答案很可能沒有多大意義(恕我直言),除非你能解釋你試圖解決什麼是真正的問題?因爲許多其他課程可能會引發這樣的事件,或者讓您以多種方式「觀察」集合的變化。 – 2014-10-05 02:02:22

+0

我正在使用WPF,並希望使它能夠在更改自定義類中數組內的元素時獲得屬性更改事件。 – user3875080 2014-10-05 02:08:32

+0

該代碼實際上使用對象的** getter **,而不是setter。它必須首先_get_您的對象的數組成員,因此它可以調用屬於該數組的索引屬性的setter。 – 2014-10-05 02:28:23

回答

1

類似ObservableCollection<T>類已經實現了一種功能,你想用WPF ..看看它們,看看它們是否符合你的需求。

http://msdn.microsoft.com/en-us/library/ms668604(v=vs.110).aspx

+0

ObservableCollection會在更改數組本身時進行通知(添加,刪除,清除),但不會在元素更改時進行通知。我只是在ObservableCollection 中爲我的數組在示例中進行了操作,結果相同。 – user3875080 2014-10-05 02:28:53

+0

啊只是看透了,發現你可能正在談論的事件。只需要將一個函數連接到CollectionChanged事件,並使所有的工作。謝謝。 – user3875080 2014-10-05 02:33:09