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
。- Listpicker を変更して、SelectedItems プロパティを設定し、そこから読み取るだけでなく (このガイドに従って)、うまく機能するようにしました。
問題:
リストピッカーの選択項目field_SelectionChanged
を変更するたびに、イベントが複数回呼び出されます。field
(私はそれを一度だけ呼び出したい..)もう一つの奇妙なことは、最後の呼び出しの1つでfield_SelectedItems
、古いselectedItems(「変更」の前のもの)と等しいことです..
それはバグですか、それとも私の問題ですか?(どうすれば修正できますか?)
編集:
チェックしたところ、アイテムを選択する前にリストピッカーでアイテムが選択されていない場合、一度だけ呼び出されるようです。(新しいアイテムを選択する前に SelectedItems が空であることを意味します)