動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

定石5: DataSource切替時の選択状態保持パターン

出典: WinForms ComboBox の DataSource バインディングと SelectedIndex / SelectedValue / SelectedItem の違い定石5: DataSource切替時の選択状態保持パターン

定石5: DataSource切替時の選択状態保持パターン (csharp)#ed209c382877
// ✅定石5: DataSource切替で選択状態を保持する3ステップ
private void RefreshCombo(DataTable newDt)
{
    // 1.現在のSelectedValueを保存
    object prevValue = combo.SelectedValue;
 
    // 2.イベントを外してDataSourceを切り替え
    combo.SelectedIndexChanged -= combo_SelectedIndexChanged;
    combo.DataSource = newDt;
    combo.SelectedIndexChanged += combo_SelectedIndexChanged;
 
    // 3.保存したSelectedValueを復元(新しいデータに該当IDがあれば)
    if (prevValue != null)
    {
        combo.SelectedValue = prevValue;   //該当なしなら-1(未選択)になる
    }
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #ed209c382877
  • lines: 17
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「定石5: DataSource切替時の選択状態保持パターン」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

4
図鑑トップ