これは少し奇妙なことですが、私は数時間格闘しており、何が起こっているのか理解できません。
他の誰かがこの問題を経験していて、おそらくそれを説明できるかどうか疑問に思っていました. 私は単純な Winforms アプリを構築しており、組み込みのコントロールの多くを使用しようとしています。
基本的に、ユーザー コントロールといくつかのデータ キャプチャ フィールドを含むフォームがあります。3 つのフィールドはドロップダウン リストであり、ユーザー コントロールには、Product クラスに直接バインドする bindingSource コントロールがあります。
実行時に Product クラスのインスタンスを BindingSource に提供し、クラスにはProductType
. 簡単にするためにList<ProductType>
、クエリ時にそれ自体をロードする ProductTypes も Product クラスに追加しました。つまり、同じ bindingSource を使用して、ProductTypes
データ メンバーをドロップダウンリストのデータソースとして選択できます。
フォームを実行すると、リストが完全にバインドされ、リストされているすべての製品タイプが表示されます。1 つを選択してタブで移動するか、クリックして次のフィールドに移動できます。しかし、明らかに、ドロップダウンに bindings-SelectedValue を選択しておらず、データソースのみを選択しているため、選択した値はバインドされません。ドロップダウンが Bindings-SelectedValue にバインドして Product のインスタンスを変更することを確認してからフォームを実行すると、リストは完全に読み込まれ、コントロールをタブで移動することができます。ドロップダウンから選択します。ドロップダウンから選択すると、ドロップダウンがフォーカスを保持します. 愛やお金のためにタブアウトすることはできず、フォームのキャンセルボタンをクリックすることさえできません。右上の閉じるボタンをクリックできる唯一のボタンであり、他のフィールドやドロップダウンをクリックすることはできません。これは、選択が行われるとすぐに 3 つのドロップダウンすべてに影響します。
私が見逃しているものは誰にもありますか?
私はいくつかのことを変更しようとしましたが、ドロップダウン値にオブジェクトのメンバーではなく string[] を与えることで成功しました。それは機能しているように見えますが、データバインディングを使用するという目的を無効にしますね?
どんな助けでも大歓迎です!