このテーブルに StatusId という列を持つデータテーブル (ジョブ) があります。別のデータテーブル (jobStatus) があります。job テーブルには 1 つのジョブ レコードがあり、jobstatus テーブルにはすべてのジョブ ステータスがあります。
私のwinformsフォームにはジョブレコードが表示されており、ジョブステータスはjobstatusテーブルの内容を表示するコンボボックスです。List 部分 (DisplayMember) は jobstatus テーブルにバインドされ、data 部分は jobs テーブルにバインドされます。(ValueMember) したがって、すべてがうまく機能し、ジョブが選択されて表示されると、コンボボックスがそれぞれのジョブのステータスを選択します...すべて正常です。
これで、ジョブ ステータス レコードを追加できる別のフォーム (JobStatus) ができました。そのため、ジョブ レコードを入力/変更しているときに、別のジョブ ステータスが必要であることに気付き、ジョブ ステータス フォームにジャンプして新しいステータスを入力します。次に、ジョブ フォームに戻り、コンボ ボックスで新しいジョブ ステータスを選択できるようにします。
私の質問は、別のフォームにコンボボックスを設定するために使用されるルックアップ スタイル リストに新しいレコードが追加または編集されたこのシナリオのベスト プラクティスは何かということです。フォームのちらつきを除いて機能するフォームのアクティブ化イベントにコードを入れてみましたが、見栄えが悪いです。
何か案は???
私はあなたが言ったことを事実上実行していたので、コードをもう少し詳しく見ることができました. 問題は、コード行を処理していた順序でした。
古いコード
cboCustomer.DataSource = Business.Contact.GetContact( Enums.ContactType.Customer ).Tables[0];
sorted = ( ( DataTable ) cboCustomer.DataSource ).DefaultView;
sorted.Sort = "Name ASC";
ここに新しいコード
DataView dv = Business.Contact.GetContact( Enums.ContactType.Customer ).Tables[0].DefaultView;
dv.Sort = "Name ASC";
DataTable dt = dv.ToTable();
cboCustomer.DataSource = dt;
魅力のように機能します。あなたの助けに乾杯