ItemsSource が ObservableCollection> にバインドされている WPF DataGrid があります。
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 をスクロールして表示したり外したりすると、セル内のテキストが表示されます。
任意のヒント?