如何在列表中添加多个项目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;
}
看起来您每次在添加项之前都是从先前的某个变量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();