2011-01-20 3 views
1

두 페이지가 있습니다 : P1과 P2. P1에서 ListBox의 선택된 항목이 다른 페이지에서 돌아온 후 회색으로 표시됩니다.

,

는) IsolatedStorage 및 데이터 바인딩에서 데이터를로드 P1에서 버튼 클릭 이벤트에서 일어날에 ListBox1합니다.

b) 사용자가 항목을 선택하고 P2

예를 탐색한다 : 사용자는 P2에 CarModel_1

를 선택 사용자 뒤로 키 프레스 P2에서 P1로 돌아 간다.

이 문제는 :

P2에서 returnning,에 ListBox1에서 선택한 항목이 회색으로 또는 P2에 갈 클릭 할 수 없습니다된다.

예 : CarModel_1이 회색으로 표시되거나 클릭 할 수 없게됩니다.

나머지는 클릭 할 수 있습니다.

감사합니다.

감사

답변

1
이 문제를 해결

하나의 일반적인 방법은 목록 상자에 대한 selectedIndex의 = -1을 설정하는 것입니다.

기본 Databound 프로젝트를 만들면이 동작을 볼 수 있습니다.

이것은 생성 된 코드입니다.

private void MainListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    // If selected index is -1 (no selection) do nothing 
    if (MainListBox.SelectedIndex == -1) 
     return; 

    // Navigate to the new page 
    NavigationService.Navigate(new Uri("/DetailsPage.xaml?selectedItem=" + MainListBox.SelectedIndex, UriKind.Relative)); 

    // Reset selected index to -1 (no selection) 
    MainListBox.SelectedIndex = -1; 
} 

이 대안은이 질문에서 설명한대로 제스처 서비스를 구현하는 것입니다.

Is there a click behavior for a list?

+0

@Mick N : 당신은 당신이 선택을 다시 설정하지 않는 경우이 문제가 발생하는 이유를 알고 있습니까? 나는 궁금 하네 ... – Praetorian

+1

"변경"이 없다면 참으로, SelectionChanged가 실행되지 않습니다. 이상적인 것은 클릭/탭 이벤트뿐입니다. 그러나 이것은 많은 컨트롤 (버튼 제외)에서 사용할 수없는 것으로 보입니다. 적어도 합리적인 방법이 있습니다. –

+0

@Mick N : 고마워. 지금 일하는 것 같습니다. ListBox에 대한 몇 가지 조건을 확인합니다. – MilkBottle

관련 문제