質問
の開発をしている住所検索ライブラリ(.純3.5、コンポーネントのラインナップがこういうことができるよう表示の外部キールックアップで開発DataGridView.
の例のような関係にあるのはテーブルのOrderLines.Orderlinesて外部キー関係製品の製品には、外部キー関係をProductTypes.
いて開発DataGridViewが各行はorderlineを表示するラインの製品およびproducttype.
ユーザーを追加または編集orderlinesのグリッドを選択し、製品のラインからcomboBoxColumnこに更新してのproducttype列のproducttypeの選択した商品と同じです。
最寄りのフィットするがその場で発音を確認することがこれまでに紹介するドメインを表すオブジェクトは、orderlineして結合するのDataGridViewのコレクション内のこれらのorderlines.その後、追加性のorderlineオブジェクトはさらに製品のproducttypeを向上させる関連notifypropertychangedイベントをかけます。私のorderlineリポジトリでそのワイヤにマッピングとorderlineオブジェクトのテーブルのデータベース.
この作品のdatabindingいものを手にコードのすべてまたはマッピングのリポジトリのように悪いです。と思った設定によりどちらのモうに手助けができるようになるこの配線が苦労していますが、マッピングを通じてすべての外部キー-う作業からokなのでビジネスにも、foreignkeyルックアップのためorderlineの製品を作成し、正しい製品のオブジェクトに基づく外部キー)までのようにしていいのdatabinding、私はできませんので、開発のidカラムを更新商品やproducttypeオブジェクト。
私は一般的なアプローチで、右クボールパーク?であれば、ソリューションマッピングができるため問題なのか。
または、より良い解決策databinding列を含む外部キールックアップするかないものとが考えられますか。
解決
と思い、問題ないときに結合するグリッドというだけでは不十分である支援INotifyPropertyChangedまって火災のListChangedライフイベント IBindingList 実施してくださいオーバーライドは、trueを返すの SupportsChangeNotification 物件です。ない場合はtrueを返すこと、グリッドとみなすかが用意されている場合は変更されます。
ます。純2.0+ることができる、汎用のコレクションを活用し BindingList クラスが、このままのものnastiness(もっとお金をかけてオーバーライドは、trueを返すのSupportsChangeNotificationている。
場合にクラスを使用してデプロパティを持ってるコレクション(などIBindingListはBindingList)きますので、その結した外部キーグリッドを産ます。きの設定にバインディングのデザイナーを選ぶだけのコレクションとしてのデータソースのグリッドべきである"けいたします。のsneaky部として取り扱いは空文字列やnullは指定集なのです。
他のヒント
ウStackOverflow:)
通常のようにベース、情報、ドロップダウンの二つの値 ValueMemberとDisplayMember.
のValueMemberの実際の制御値(これは、キーの値の順線)、ディスプレイは設定されているすべて表示されるのではなくユーザー値(このFK値)となります。
はありませんが特別な理由だけでなく返却に必要な全てのデータとの設定が必要です。。
こちらの"どうやって"ビデオることを示すデータbinding:
ものかどうかはわかりませんので、DataGridViewがやっている通常のサポートdatabinding(例えば、通常のテキストボックス)を使用でき 財路 ナビゲートを通じてオブジェクト。
のようなこと:
myTextBox.DataBindings.Add("Text", anOrderLine, "OrderedPart.PartNumber");
うのは一見の価値ありだこの作品の状況です。
私の質問に明らかな明確にし、それはそれとして。
問題はないとdatabindingをDataGridView一般的に、又は実施DataGridViewComboBoxColumnとしての人の回答では正しいことが記録されてます。
問題なのかの解決には、リフレッシュの性質と掘削減を通じて関係。
私が注文時に変更したい値の"製品"の欄では、"製品のタイプ"カラムが更新されているもののコード設定の物件や焼成のNotifyPropertyChangedイベントです。(デバッグに行ってそのスイッチの切り替え)
後に多くの魅今ここにもいなかったので作業時に直接セットの"種"プロパティのデータソースも設定では、"製品"ドセッター。
他にも私は、ピースブリッジなどの見所ものであることを思dataccess層で作成したコミットメントラインは、すべての作品。
また、コピーのIListによる設定によりどちらのモをIBindingListも再び表示されます。
なので 問題は、と思うとスレッドのNotifyPropertyChangedイベントの紛失-利用の場合一部のデータソースを、一定の方法(いをとることができると思いますか。決す。)
"笑う門には福来の研究よりよい方法の解決このよ転載-複製を行IListのIBindingList-かを学ぶ必要があるスレッドの整列化.
編集
私は現在開発した溶液という課題を解決する考えを理解していった混乱というので、基本的に表示されるものが基本財産databindingな再生用リストならBindingList-どうしようとしていましたがdatabind特性と火力発連鎖NotifyPropertyChangedイベント、僕もhaywire、私はイベントも失われています。
データアクセス-ソリューションしていま現在ではのバリエーションRob Conery IRepository パターンを返し私のコレクション拘束されることとして、カスタムクラスI、SortableBindingLazyListからくるBindingListを実施し、コアソート方法また店内のリストとしてのクエリに対して、遅延のリストmaterialisation.