数组有changed事件, 你可以捕获。

解决方案 »

  1.   

    这个跟PropertyChangedEventArgs的参数没有关系.
    你是不是想在PropertyChange里知道是哪个Key对应的Item有了改动?
    如果是,继承一下PropertyChangeEventArgs即可 public class PropertyChangedEventArgsEx : PropertyChangedEventArgs
        {
            public PropertyChangedEventArgsEx(string propName, int key, object value)
                :base(propName)
            {
                PropKey = key;
                PropValue = value;
            }
            public int PropKey { get; private set; }
            public object PropValue { get; private set; }
        }    public class DataItemList : INotifyPropertyChanged
        {
            Dictionary<int, object> m_data = new Dictionary<int, object>();        [STAThread]
            static void Main(string[] args)
            {
                DataItemList dl = new DataItemList();
                dl.PropertyChanged += (s, e) =>
                {
                    PropertyChangedEventArgsEx pce = e as PropertyChangedEventArgsEx;
                    if (pce != null)
                    {
                        Console.WriteLine("Name:{0},Key:{1},Value:{2}", pce.PropertyName, pce.PropKey, pce.PropValue);
                    }
                };
                dl[1] = "123";
                dl[2] = "456";
                /*-------------------输出-----------------
                 Name:Items,Key:1,Value:123
                 Name:Items,Key:2,Value:456
                 ----------------------------------------*/
            }     
            public object this[int index]
            {
                get { return m_data[index]; }
                set
                    {
                        m_data[index] = value;                    if (PropertyChanged != null)
                        {
                            PropertyChangedEventArgsEx pce = new PropertyChangedEventArgsEx("Items",index,value);
                            PropertyChanged(this, pce);
                        }
                    }
            }        public event PropertyChangedEventHandler PropertyChanged;
        }