2012-03-04 4 views

답변

6

ListPicker의 SelectedIndex를 채우거나 설정하는 코드가 Page_Loaded에 있다고 가정합니다.

페이지를 입력 할 때만 값을 설정해야합니다.

private void PhoneApplicationPage_Loaded(object sender, EventArgs e) 
    { 


     DataContext = App.ViewModel.something; 
     if (MyListPicker.SelectedIndex == -1) 
     { 
      MyListPicker.ItemsSource = App.ViewModel.SomeList; 
      MyListPicker.SelectedIndex = App.ViewModel.MyBinding; 
     } 
    } 

당신은 또한 당신이 (로드하고 페이지에 바인딩 할 때 여러 번 해고 할 수) 시작 선택 변경 사항을 무시 것을 보장 할 수 있습니다 만 캐치 사용자가 변화를 시작했다.

private void MyListPicker_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     if (e.RemovedItems != null && e.RemovedItems.Count > 0) 
     { 
      if (this.MyListPicker.SelectedItem != null) 
      {    
       // Do something 
      } 
     } 
    } 
+0

정말 고마워요! –

+0

나를 도왔습니다. 감사! – James

0

123Tax 감사합니다. 선택 변경 이벤트의 마지막에 listpicker 인덱스를 -1로 설정하면 두 번 호출하지 못했습니다. 예를 들어 코드는 다음과 같습니다.

private void MyListPicker_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (e.RemovedItems != null && e.RemovedItems.Count > 0) 
    { 
     if (this.MyListPicker.SelectedItem != null) 
     {    
      // Do something 
     } 
     MyListPicker.SelectedIndex = -1; 
    } 
} 
관련 문제