我有一个 WPF DataGrid,其 ItemsSource 绑定到 ObservableCollection>。
Tuple 是我制作的一个简单类,它在一个数组中存储 4 个字符串。这是一个通用版本:
public class Tuple<T>: INotifyPropertyChanged
{
private int _size = 0;
public Tuple(int size)
{
this._size = size;
_objs = new T[_size];
}
private T[] _objs;
public T this[int i]
{
get
{
return _objs[i];
}
set
{
_objs[i] = value;
OnPropertyChanged(".[" + i + "]");
}
}
public void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
在编译时我知道我将有 4 列,所以我将它们绑定到元组的索引。在运行时,元组被添加到 ObservableCollection 并被修改。但是,我遇到了一个问题,即我的 DataGrid 仅在创建元组时更新......也就是说,我得到如下所示的输出:
数据存在于 ObservableCollection 中,就像您将 DataGrid 滚动进出视图一样,单元格内的文本会出现:
有小费吗?