1

次のように、チェックボックスをカスタムオブジェクトのブール値プロパティにバインドしようとしています:

chkTableIsReadonly.DataBindings.Add(New Binding("Checked", objectBindingSource, "ApplyforVisa", True, DataSourceUpdateMode.OnPropertyChanged, False))

カスタム クラスは INotifyPropertyChanged インターフェイスをサポートします。

チェックボックスを最初に新しいオブジェクトにバインドすると、すべてが機能します。

objectBindingSource.Datasource = new objectToBindTo

ここに奇妙な部分があります:

  1. チェックボックスをオンにすると、プロパティ Set が呼び出され、INotifyPropertyChanged イベントが呼び出されて、全員が満足します。
  2. 同じボックスをオフにすると、プロパティ Set が呼び出されず、INotifyPropertyChanged イベントが呼び出されず、(さらに悪いことに) 別のレコードに移動できません。

object.ApplyForVisa プロパティを手動で設定するために CheckedChanged イベントをキャプチャしようとしましたが、成功しませんでした。プロパティ Set が呼び出され、INotifyPropertyChanged イベントが呼び出されますが、まだコントロールにロックされており、ナビゲートできません。

CheckedChanged イベントで bindingsource.endedit を呼び出してみましたが、成功しませんでした。

チェックボックスをオフにした場合にのみ問題になります。チェックボックスは、true または false の 2 つの状態です。

テキスト ボックス、コンボ ボックス、データグリッドなど、他のバインディングはすべて問題なく動作します。チェックボックスだけではありません。

私の唯一の考えは、バインディング ソース データ エラーのように振る舞うようですが、エラーはスローされません。バインディング ソースのデータ エラー イベント ハンドラーを追加すると、呼び出されません。

4

1 に答える 1