ListPicker是来自WP8 Toolkit.的控件
Code:
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属性,而不仅仅是从它读取(在this指南之后)并且效果很好 .
Problem:
每当我更改 field
listpicker的选择项时, field_SelectionChanged
事件都会被多次调用 . (我希望它只被调用一次..)另一个奇怪的事情是,在最后一次调用中 field_SelectedItems
等于旧的selectedItems("change"之前的那些) .
Is it a bug or my problem? (How do I fix it?)
EDIT:
我检查过,如果在我选择项目之前列表选择器中没有选定的项目,它似乎只被调用一次 . (我的意思是在选择新项目之前,SelectedItems为空)
2 回答
固定:)
我使用了这个答案中建议的代码:listPicker not updating selection in full mode
我有两次调用selectedchange事件的相同问题 . 在listPicker_selectedchange事件结束时,将listpicker selected index设置为-1 .
谢谢Dan Barzilay !!