如何在列表Windows Phone中添加多个项目

时间:2015-05-29 12:56:00

标签: c# windows-phone-8

我正在使用Windows手机应用程序,我想在已存在的列表中添加项目我的问题是,当我添加第一项时它的确定,但当我添加第二项时,列表将替换我之前添加的项目

  private void btn_profession_Loaded(object sender, RoutedEventArgs e)
    {
        try
        {
            selectedKeywordsIds = App.skillIds;   // for selected keyword
            selectedProfName = App.professionalName;
            selectedProfId = App.professionalId;
            this.btn_profession.Content = selectedProfName;

             Key = App.skillKeywords  ;
             Pro = App.professionalName;
             final1=Key.Replace(Pro, "");


             List<string> numbers = final1.Split(',').ToList<string>();
             numbers.Add(selectedKeywordsIds);
             numbers = numbers.Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList();

             listBox1.ItemsSource = null;

             listBox1.ItemsSource = numbers;

    }

3 个答案:

答案 0 :(得分:0)

在添加项目之前,您似乎每次都会从之前的变量 final1 构建列表。你应该考虑这样的事情

final1 = string.Join(',', numbers.ToArray());
添加新项目后

。因此,对“数字”集合所做的更改将作为逗号分隔的项目存储在 final1 变量中。

答案 1 :(得分:0)

听起来您希望再次显示相同的列表项,这意味着在过滤空或空格后,您不应在Distinct()上使用numbers

numbers  = numbers.Where(s => !string.IsNullOrWhiteSpace(s)).ToList();

答案 2 :(得分:0)

尝试使用ObservableCollection -

ObservableCollection<string> coll = new ObservableCollection<string>(numbers);

将ListBox的itemsource设置为此可观察集合。

您无需使用 -

listBox1.ItemsSource = null;

listBox1.ItemsSource = numbers;

只需在observable集合中添加或删除所需的项目即可。更改将自动反映在UI中的listBox1上。

此外,您可能需要更改代码 -

numbers = numbers.Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList();

更适合于可观察的收集。