0

これらのリンクで私の問題の最も近い参照を見つけました:

ComboBox は Clear() の後に古い値を持ってい
ます。ListItem の Index が変更されると、選択したインデックスが起動するのはなぜですか?

cmbcountry、、、の 4 つのコンボボックスがcmbstateありcmbdistrictますcmbcitycmbcountryメソッドごとに読み込みイベントで入力しますGetCountry()。のselectedvalueを引数として取り、関連する状態のリストなどを返すメソッドcmbstateによって入力します... GetState(countryid)cmbcountrycmbdistrictcmbcity

で別のアイテムを選択すると問題が発生しcmbStatecmbDistrct適切なアイテムが表示されません。

.Eg states :"madhya pradesh"、"Utter pradesh"、"Rajsthan"

「Rajsthan」の場合、cmbdistrict には関連する値が入力されていますが、「Utter pradesh」の場合、cmbdistrict にはまだ古い値が含まれています。

関連するコードは次のとおりです。

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()を使用している場合、エラーが発生します。

私が見逃している他の関連する参照があるかどうか教えてください。

4

0 に答える 0