2014-10-05 61 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