1

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 をスクロールして表示したり外したりすると、セル内のテキストが表示されます。

ここに画像の説明を入力

任意のヒント?

4

1 に答える 1