2011-10-11 12 views
8

DataGridViewをリストに正常にバインドしました。しかし、リスト内のオブジェクトの1つのプロパティをプログラムによって変更すると、グリッドがリフレッシュされません。セルをクリックするか最小化してからフォームを最大化すると、表示された値が更新されます。バインドされていないDataGridViewセルが更新されないのはなぜですか?

here私はBindingListを使用するべきです。私が使用しているリストは、IBindingListを実装していないインターフェイスタイプです。しかし、リストを初期化するために使用される具体的な型は、BindingListを継承します。何か案は?

+0

お使いのプラットフォームは何ですか? WPF? Winforms? Silverlight? (等) –

+0

申し訳ありませんがWinformsです。 – bsh152s

答えて

9

リストにはIBindingList(またはBindingList)を実装する必要があり、オブジェクトにはINotifyPropertyChangedを実装する必要があります。 DataGridViewが正しくバインドするためには、両方の条件が必要です。 INotifyPropertyChangedをimplmenentしなければならないので、

データソースは、例えば、可能ならば、MyList<MyClass>MyListIBindingListMyClassを実装する必要があります。ここで

はきちんとした例である:http://crazorsharp.blogspot.com/2009/06/inotifypropertychanged-how-to-and-when.html

+0

私が使っていたコードはINotifyPropertyChangedを実装していて、リストはBindingリストでした。しかし、フラグが設定されていると通知が無効になりました。この回答は私がこれを理解する助けとなりました。 – bsh152s

関連する問題