DataGridView
これらの列のいくつかDataGridViewComboBoxColumns
が別のデータビューを指しているを使用しています。フィルタリングされたデータビューを使用してデータソースを設定すると、すべてが正常に表示されますが、コンボが変更されると、データグリッド ビューに誤った値が入力されることがあります。これは、コンボのフィルター処理されていないデータに、親 Datagridview の DisplayMember に割り当てられる同じ値を持つ複数の行が含まれている場合にのみ発生するようです。
たとえば (単純な例) 顧客のデータグリッド:
Name Country Shipping town
Country
&Shipping town
国と町のテーブルのデータビューの外部キーに基づくコンボです。明らかに、組み合わせShipping towns
はフィルタリングされ、対応する国のもののみが表示されます。のテーブルにShipping towns
トーキーの 2 つのエントリ (1 つはイングランド、もう 1 つはオーストラリア) が含まれている場合、国がイングランドである顧客Shipping Towns
にイングランドのすべてが表示され、トーキーが選択されている場合、親の datagridview に返される値はトーキーのキー値です。オーストラリアでは、コンボのフィルター処理されたデータビューにその値さえ含まれていませんでした。これは、コンボの表示メンバーとして使用されるデータビュー列に重複する値が含まれている場合にのみ発生します。