0

データ バインディングについてサポートが必要です。この状況を想像してみてください。Isotope という名前のクラスと Photon という名前のクラスの 2 つのクラスがあります。クラス Isotope には BindingList Photons が含まれています。また、BindingList Isotopes を配置する静的クラス StaticVariables もあります。ここで、同位体のリストを閲覧できるフォームを作成したいと思います。StaticVariables.Isotopes にバインドするコンボボックス CBIsotopes を作成しました。

 CBIsotope.DataSource = StaticVariables.Isotopes;
 CBIsotope.ValueMember = "IsotopeName";
 CBIsotope.DisplayMember = "IsotopeName";

これまでのところ、すべてが機能しています。ここで、選択した同位体のすべての光子を表示する datagridview DGVPhotons を作成したいと考えています。私の最初の本能は、途中で何かをすることでした

DGVPhotons.DataSource = StaticVariables.ListOfIsotopes.Photons

もちろん、これは機能しません。私が試したもう 1 つのことは、ComboBox の SelectedItem プロパティを使用することです。

(1)

DGVPhotons.DataSource = (CBIsotope.SelectedItem as Isotope).Photons;

これは機能しますが、私が望むほどではありません。ComboBox が空であるため、読み込み時に実行しても何も起こりません。ComboBoxでアイテムが実際に選択されているときにそれを行うと機能しますが、ComboBoxで選択を変更すると、DataGridViewは同じままです。解決策は、(1) の行を ComboBox の SelectedIndexChanged に入れることですが、それは私には強引な方法のように思え、私のアプローチは根本的に間違っていると感じています...もっとエレガントな解決策はありますか?

4

1 に答える 1

0

わかりました、ここでの鍵はDataBindソリューションを使用することです。要素を変更した後は、新しいデータをバインドするためにメソッド aftersourceを使用することを忘れないでください。DataBind

また、イベントでは、リクエストが初めて処理されるときにのみ、ページを初期化するためにサインPageLoadを使用することを忘れないでください。IsPostBack

于 2013-03-07T09:12:19.100 に答える