簡単な質問かもしれませんが、テキストボックスの Text プロパティをコンボボックスの SelectedItem プロパティにバインドする方法についてお尋ねしたいと思います。私はコンボボックスのSelectedItemChangedイベントを介してそれを行い、次のようにテキストを設定します:
if(cmbMeasuring.SelectedItem != null)
txtMethod.Text = ((ListBoxItem)cmbMeasuring.SelectedItem).Value;
「名前」と「値」の 2 つの文字列を保持するクラス ListBoxItem があります。次に、コンボボックスの BindingList を作成しました。
private BindingList<ListBoxItem> lst;
次に、コンストラクターでコンボボックスのデータ ソースを設定します。
cmbMeasuring.DataSource = lst;
cmbMeasuring.DisplayMember = "Name";
これはうまくいきますが、それが最善の方法であるかどうかはわかりません。しかし、テキストボックスの内容を変更すると問題が発生します。私はテキストボックスのLeaveイベントを介してそれを行います:
private void txtMethod_Leave(object sender, EventArgs e)
{
if (cmbMeasuring.SelectedItem != null)
((ListBoxItem)cmbMeasuring.SelectedItem).Value = txtMethod.Text;
}
テキストボックスがフォーカスを失った場合、アイテムの値を割り当てます。しかし、入力を保存するためのメニューストリップもあり、それを直接クリックすると、このイベントは発生しないため、最後の入力は保存されません。これはテキストボックスの TextChanged イベントを介して実行できることはわかっていますが、多くの時間がかかります。
より良い解決策はありますか、それとも問題ありませんか? 私はWPFを使用していません。
ありがとう。