列表框项目被添加两次而不是一次

时间:2015-08-03 10:49:51

标签: c# listbox

我正在开发一个通用的Windows应用程序,当我将一个项目添加到列表框时,它会出现两次没有错误

这是代码

private async void btnNew_Click(object sender, RoutedEventArgs e)
{
    listBox.Items.Add(nameBox.Text);
    string type = comboBox.SelectedItem.ToString();
    URL url = new URL();
    url.type = type;
    url.name = nameBox.Text;
    url.info = infoBox.Text;
    url.url = urlBox.Text;
    url.isProtected = isProtectedSwitch.IsOn;
    await url.saveToXML();
    infoBox.Text = "";
    nameBox.Text = "";
    urlBox.Text = "";
    comboBox.SelectedIndex = -1;
}

如果需要:

public async Task saveToXML()
{
    //Directory.CreateDirectory(@"C:\Link");
    URL newURL = new URL();
    newURL.type = type;
    newURL.name = name;
    newURL.info = info;
    newURL.url = url;
    newURL.isProtected = isProtected;
    newURL.amountOfClicks = amountOfClicks;
    StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync(@"Link\" + newURL.name + ".xml", CreationCollisionOption.ReplaceExisting);
    Stream fileStream = await file.OpenStreamForWriteAsync();
    DataContractSerializer serialize = new DataContractSerializer(typeof(URL));
    serialize.WriteObject(fileStream, newURL);
}

2 个答案:

答案 0 :(得分:1)

在您提供的代码中看不到任何问题。

在添加项目之前,您可能没有清除退出listBox.Items。确保在添加新的项目列表之前listBox.Items.Clear()

答案 1 :(得分:0)

在添加项目之前清理列表框。

listBox.Items.Clear();

双击此按钮是可行的,因此代码会触发两次。