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

本文关键字:项目 Windows Phone 添加 列表 | 更新日期: 2023-09-27 17:51:04

我正在windows phone应用程序上工作,我想在已经存在的列表中添加项目,问题是当我添加了第一个项目时,它是ok的,但当我添加第二个项目时,列表将取代我以前添加的项目

  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;
    }

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

看起来您每次在添加项之前都是从先前的某个变量final1构建列表。你应该考虑这样做

final1 = string.Join(',', numbers.ToArray());

添加新项后。因此,对"numbers"集合所做的更改将以逗号分隔的项存储在final1变量中。

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

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

尝试使用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();