2013-03-20 2 views
0

안녕하세요. 앱을 사용하는 메모를하고 있습니다. 안녕하세요. SQL Azure 데이터베이스에 연결되어 있습니다. 항목은 MobileServiceCollectionView를 통해 자동으로 채워집니다. 항목을 두드린 후 detailView를 오른쪽으로 열어야합니다 ...Win8 ListView Tap이 항목을 선택하지 않습니다.

이유는 모르겠지만 항목을 두드리는 것은 선택하지 않으므로 noteListView_Tapped 이벤트에서 listView.SelectedItem을 확인하지 않아도됩니다.

내 listview에 어떤 문제가 있습니까?

<ListView x:Name="noteListView" Margin="20,0,0,0" Tapped="noteListView_Tapped"> 
<ListView.ItemTemplate> 
    <DataTemplate> 
    <StackPanel Orientation="Horizontal" Margin="2"> 

    <CheckBox x:Name="CheckBoxComplete" IsChecked="{Binding Complete, Mode=TwoWay}" Checked="CheckBoxComplete_Checked" Padding="3"/> 
    <TextBlock x:Name="TextBlockTodoItem" Text="{Binding Title}" Padding="3" /> 

    </StackPanel> 
    </DataTemplate> 
</ListView.ItemTemplate> 
</ListView> 

그리고 여기에 도청 이벤트

는 .. 그것은 내가 추가

TodoItem t = (TodoItem)lv.SelectedItem;에 추락 조건 지금 아무것도 디버그 인쇄를 제외하고 발생하는 경우.

private void noteListView_Tapped(object sender, TappedRoutedEventArgs e) 
    { 
     Debug.WriteLine("0"); 
     ListView lv = (ListView)sender; 
     if (lv.Items.Count > 0) 
     { 
      if (lv.SelectedItems.Count > 0) 
      { 
       TodoItem t = (TodoItem)lv.SelectedItem; 
       Debug.WriteLine("1"); 
       Debug.WriteLine(t.Title); 
       try 
       { 
        Location l = TodoItem.StringToLocation(t.LocationTaken); 
        Debug.WriteLine("2"); 
        MapLayer.SetPosition(locationIcon, l); 
        map.SetView(l, 15.0f); 
       } 
       catch (Exception ex) 
       { 
        Debug.WriteLine("Map set position failed.: " + ex.Message); 
       } 
      } 
     } 
    } 

그래서 무엇을 변경해야합니까? 또는 어떤 항목을 클릭했거나 선택했는지 어떻게 알 수 있습니까?

답변

1

ListView에서 SelectionChanged 이벤트를 사용하지 않는 이유는 무엇입니까? 나는 당신의 문제가 목록보기를 도청, 그래서 도청 이벤트 있다는 것을 (나는 확실하지 않다하지만), 선택과 동일하지 않습니다 생각

private void noteListView_SelectionChanged(object sender, RoutedEventArgs e) 
{ 
    if((sender as ListView).Items.Count > 0) 
    { 
     ..... 
    } 
} 

뒤에 코드에서 다음

<ListView SelectionChanged="noteListView_SelectionChanged"> 

목록에있는 항목

관련 문제