ListPicker 是WP8 Toolkit 中的一个控件。
代码:
private void field_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// Make sure we don't handle the event during initiation.
if (e.RemovedItems != null && e.RemovedItems.Count > 0)
{
if (this.field.SelectedItems != null)
{
if (this.field.SelectedIndex != -1)
{
ListPicker_SelectionChanged(sender, e);
//Make needed proffesions visable:
profls.Clear();
foreach (ListPickItem item in field.SelectedItems)
switch (item.Tag)
{
default:
foreach (ListPickItem iitem in profl[9])
profls.Add(iitem);
break;
case 90017:
foreach (ListPickItem iitem in profl[0])
profls.Add(iitem);
break;
case 9000:
foreach (ListPickItem iitem in profl[1])
profls.Add(iitem);
break;
}
}
}
}
}
- 请注意,
profession
ListPicker 的 ItemsSource 是数据绑定到profls
var。 - 我修改了 Listpicker,以便我还可以设置 SelectedItems 属性,并且不仅可以从中读取(遵循本指南)而且效果很好。
问题:
每当我更改列表选择器的选定项field_SelectionChanged
时,都会多次调用该事件。field
(我希望它只被调用一次..)另一个奇怪的事情是,在最后一次调用中,field_SelectedItems
它等于旧的 selectedItems(“更改”之前的那些)..
是bug还是我的问题?(我如何解决它?)
编辑:
我检查了一下,如果在我选择项目之前列表选择器中没有选定的项目,它似乎只被调用一次。(我的意思是 SelectedItems 在我选择新项目之前是空的)