2009-05-05 9 views
0

DataSourceがBindingListであるDataGridViewがあります。ほとんどの列は、バインドされた列のPropertyChanged( "...")を呼び出すさまざまなタイマーによって更新されます。 1つの列(問題のある列)はDataGridViewComboBoxColumnであり、ユーザーはItemsのリストから項目を選択します。C#で列をバインドして更新しているDataGridViewを編集する

問題は、DataGridViewComboBoxColumnを使用できないことです。これは、常に、PropertyChangedイベントが発生したときに常に点滅しています。選択しようとする項目は変更されません。

私が間違っていることを知っていますか?

答えて

0

まず、コードサンプルを追加して、意味を理解してください。

第2に、奇妙に聞こえるもの。なぜタイマーでPropertyChanged()を手動で呼び出すのですか?なぜあなたのクラスにINotifyPropertyChangedを実装していないのですか?

または、ICustomTypeDescriptorとINotifyPropertyChangedを実装するラッパーを使用できます。この場合、ラッパーはクラスのINotifyPropertyChanged実装を自動的に追加します。なぜICustomTypeDescriptorが必要なのか、どのように役立つのかについては、インターネットで検索してください。

+0

私がやっていることはちょっと変わっていると認めます。私は自分のクラスでINotifyPropertyChangedを実装しています。このクラスには、パフォーマンスの理由から(プロファイル結果に基づいて)非常に頻繁に(1秒間に何回も)変更される要素のためにPropertyChangedを呼び出すタイマーもあります。 コードサンプルまでは、大きな複雑なコードベースからのものです。私は試みます。 –

0

DataGridViewComboBoxコントロールは、別のセルに移動したユーザーによってセルが検証されるまで、値の変更をコミットしないという問題があります。この動作は、CurrentCellDirtyStateChangedイベントを使用して値が変更されたときに発生するよう強制できます。

関連する問題