別のフォームを表示しているフォームがあります。
if (headerText == "")
{
MhrtTemplateColumn objMhrtTemplateColumn =
new MhrtTemplateColumn("", lstUnusedChannelTags);
objMhrtTemplateColumn.ShowDialog();
}
else
{
MhrtTemplateColumn objMhrtTemplateColumn =
new MhrtTemplateColumn(ChannelDesc, lstUnusedChannelTags, CurrentTag);
objMhrtTemplateColumn.ShowDialog();
}
オーバーロードされたコンストラクターは次のとおりです。
public MhrtTemplateColumn(string channelDescription, List<string> channelTags)
{
InitializeComponent();
this.ChannelDescription = channelDescription;
this.ChannelTags = new List<string>();
this.ChannelTags.Clear();
this.ChannelTags = channelTags;
}
public MhrtTemplateColumn(string channelDescription, List<string> channelTags, string CurrentChannelTag)
{
InitializeComponent();
this.ChannelDescription = channelDescription;
this.ChannelTags = new List<string>();
this.ChannelTags.Clear();
this.ChannelTags = channelTags;
this.CurrentChannelTag = CurrentChannelTag;
}
これは、MhrtTemplateColumn の Window_Loaded イベントです。
private void Window_Loaded(object sender, RoutedEventArgs e)
{
txtChannelDescription.Text = ChannelDescription;
if (CurrentChannelTag != null && CurrentChannelTag != "")
{
if(ChannelTags.Contains(CurrentChannelTag) == false)
ChannelTags.Add(CurrentChannelTag);
cmbChannelTag.ItemsSource = null;
cmbChannelTag.ItemsSource = ChannelTags;
cmbChannelTag.SelectedValue = CurrentChannelTag;
}
else
{
cmbChannelTag.ItemsSource = null;
cmbChannelTag.ItemsSource = ChannelTags;
cmbChannelTag.SelectedIndex = 0;
}
}
私の問題は、else ブロックが実行されると、新しい項目がリストに追加されることです。フォームを閉じて、if ブロックのコードで再度表示した後、リストには以前に追加された新しい項目がまだ残っています。なんで?