ハードウェアデバイスを構成する.NET 4.0 WinFormsアプリケーションを作成しています。たとえば、デバイスに設定可能な10の設定があるとします。デバイスは、5つの異なる構成を記憶することもできる。そこで、10の設定を定義する設定オブジェクトを作成しました。私のフォームのコンストラクタでは、5つの構成オブジェクトの配列を作成し、その配列をコンボボックスのデータソースとして設定しています。ユーザーはコンボボックス(ドロップダウンリスト)から設定を選択し、その設定の設定がUIに表示されます。ユーザーがコンボボックス経由で別の設定を選択したときは、新しく選択した設定オブジェクトの設定を表示する前に、UIのすべての設定が現在の設定オブジェクトで更新されていることを確認する必要があります。私は現在、コンボボックスのSelectedIndexChangedイベントハンドラでこれを行っています。ユーザーが設定を変更すると、5つの設定すべてをハードウェアデバイスに書き込むボタンがクリックされます。問題の原因はここにあります。たとえば、3番目の設定を選択し、UIの設定を変更してから書き込みボタンをクリックすると、3番目の設定オブジェクトに保存されている設定はまだ更新されていないため、UIに反映される設定は得られませんデバイスに書き込まれます。私は、この問題を解決するためにいくつかの方法を考えてきました:デザインの質問re:.NETコンボボックスをオブジェクトの配列にバインドする
書き込み設定]ボタンのClickイベントで、私は常に、現在の設定で適切な設定オブジェクト内のデータを更新する新しいコードを書くことができ5つの設定すべてのデータをデバイスに書き込む前に、UIに保存してください。
書き込み設定ボタンのClickイベントでは、コンボボックスのSelectedIndex値をプログラムによって設定して、SelectedIndexChangeイベントハンドラをトリガすることで、設定オブジェクトを再表示する前にその設定を書き込むことができます。それから、すべての設定をデバイスに書き込むことができました。
私はどちらかは、おそらく最大の違いは、すでに私は#2のために必要な機能が含まれている既存のイベントハンドラをtriggerring対#1のための新しいコードを書くされた状態で動作すると思います。しかし、これについてもっと考えればするほど、このようなことを行うための「正しい」方法として一般的にみなされていることが増えます。誰にもこれに関する考えや考えがありますか?どうもありがとう!
チャールズ - 私はBindingSourceを使用していなかったことは間違いありませんでした(私は今ですが、!-))。実際、あなたの優れた反応を読んだ後、私はデータ結合の理解がどれほど浅いかを理解しています。しかし、あなたは私のためにたくさんの光を放ってきました。そして、私は数日後にこの問題を解決するために私のアプリを再設計しています。ありがとうございました!私はあなたの助けに非常に感謝します。 – user685869
ようこそ。 :) –