これらのリンクで私の問題の最も近い参照を見つけました:
ComboBox は Clear() の後に古い値を持ってい
ます。ListItem の Index が変更されると、選択したインデックスが起動するのはなぜですか?
cmbcountry
、、、の 4 つのコンボボックスがcmbstate
ありcmbdistrict
ますcmbcity
。cmbcountry
メソッドごとに読み込みイベントで入力しますGetCountry()
。のselectedvalueを引数として取り、関連する状態のリストなどを返すメソッドcmbstate
によって入力します...
GetState(countryid)
cmbcountry
cmbdistrict
cmbcity
で別のアイテムを選択すると問題が発生しcmbState
、cmbDistrct
適切なアイテムが表示されません。
関連するコードは次のとおりです。
private void TestForm1_Load(object sender, EventArgs e)
{
cmbCountry.ItemSource = Lookups.Lookup.GetCountries();
}
private void cmbCountry_SelectionChangeCommitted(object sender, EventArgs e)
{
cmbState.Text = "";
cmbState.Clear();
cmbState.SelectedIndex = -1;
cmbState.SelectedItem = null;
//cmbState.Items.Clear();
int countryId = Convert.ToInt32(cmbCountry.SelectedValue);
cmbState.ItemSource = Lookups.Lookup.GetStates(countryId);
}
private void cmbState_SelectionChangeCommitted(object sender, EventArgs e)
{
cmbDistrict.Text = "";
cmbDistrict.Clear();
cmbDistrict.SelectedIndex = -1;
cmbDistrict.SelectedItem = null;
//cmbDistrict.Items.Clear();
int stateId = Convert.ToInt32(cmbState.SelectedValue);
cmbDistrict.ItemSource = Lookups.Lookup.GetDistricts(stateId);
}
private void cmbDistrict_SelectionChangeCommitted(object sender, EventArgs e)
{
cmbCity.Text = "";
cmbCity.Clear();
cmbCity.SelectedIndex = -1;
cmbCity.SelectedItem = null;
//cmbCity.Items.Clear();
int DistrictId = Convert.ToInt32(cmbDistrict.SelectedValue);
cmbCity.ItemSource = Lookups.Lookup.GetCities(DistrictId);
}
private void cmbBank_SelectionChangeCommitted(object sender, EventArgs e)
{
int bankId = Convert.ToInt32(cmbBank.SelectedValue);
cmbControlBranch.ItemSource = Lookups.Lookup.GetBranches(bankId);
}
コンボボックス内の以前のデータをクリアする上記のすべての方法があります...そして、items.clear()を使用している場合、エラーが発生します。
私が見逃している他の関連する参照があるかどうか教えてください。