[英]List Items are not clearing
我有一個正在顯示另一種表單的表單:
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塊中的代碼再次顯示該表單后,列表仍然具有先前添加的新項。 為什么?
this.ChannelTags = new List<string>();
this.ChannelTags.Clear();
this.ChannelTags = channelTags;
我認為使用此代碼您正在嘗試復制channelTags
嗎? 如果是這樣,這是這樣做的方法:
this.ChannelTags = channelTags.ToList();
您的代碼只是創建一個空列表,將其清除,然后將其丟棄,然后將channelTags
分配給該字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.