簡體   English   中英

WP8 ListPicker SelectionChanged在開始時觸發

[英]WP8 ListPicker SelectionChanged fired at the beginning

我有一個帶有SelectionChanged事件的ListPicker。 我希望SelectionChange事件僅在更改選擇內容時才觸發,但是就我而言,每次加載頁面時,它也會觸發。

碼:

<toolkit:ListPicker x:Name="sightingTypesPicker" ItemsSource="{Binding sightingTypes, ElementName=this}" SelectionChanged="sightingTypesPicker_SelectionChanged">
   <toolkit:ListPicker.ItemTemplate>
      <DataTemplate>
         <StackPanel>
            <TextBlock Text="{Binding Name}" FontSize="{StaticResource PhoneFontSizeSmall}"/>
         </StackPanel>
      </DataTemplate>
   </toolkit:ListPicker.ItemTemplate>
   <toolkit:ListPicker.FullModeItemTemplate>
      <DataTemplate>
         <StackPanel>
            <TextBlock Text="{Binding Name}" FontSize="{StaticResource PhoneFontSizeLarge}"/>
            <TextBlock Visibility="Collapsed" Text="{Binding TypeId}" FontSize="{StaticResource PhoneFontSizeSmall}"/>
         </StackPanel>
      </DataTemplate>
   </toolkit:ListPicker.FullModeItemTemplate>
</toolkit:ListPicker>

C#:

private void sightingTypesPicker_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    SightingType selecteditem = e.AddedItems[0] as SightingType;
    Sighting.Instance.TypeId = selecteditem.TypeID;
}

基本上,通過默認,列表選擇器或列表框或組合框或任何下拉列表具有特定的選定項目,即列表框的第零個項目。/..等。因此,在加載頁面並將數據填充到列表框,否則將觸發從-1的選擇更改,即無數據狀態到0選擇更改為默認值:)

您可以在代碼中的Loaded事件處理程序上添加處理程序,以確保在此之后才調用該處理程序。

更新:

例如,將此代碼添加到頁面的Loaded事件而不是XAML中:

sightingTypesPicker.SelectionChanged += sightingTypesPicker_SelectionChanged;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM