2017-12-05 1 views
1

미리 감사드립니다.UWP GridView를 클릭하여 선택을 지우십시오.

나는 간단한 질문이라고 생각하지만, 나는 모른다.

MianPage에는 거위 뷰가 있습니다.

그리고 나는 Itemclick 메서드를 선언합니다. 나는 동일한 항목을 클릭하면

private async void girdView_ItemClick(object sender, ItemClickEventArgs e) 
    { 
     var gridView = sender as GridView; 
     if (e.ClickedItem == gridView.SelectedItem) 
     { 
      await Task.Delay(100); 
      gridView.SelectedItem = null; 
     } 
    } 

,이 취소 될 수 있습니다

IsItemClickEnabled="True" 
IsRightTapEnabled="True" 
ItemClick="girdView_ItemClick" 
RightTapped="girdView_RightTapped" 

는 대해서 itemClick에, 나는이 시도했다. 하지만 빈 영역을 클릭하여 선택을 취소하고 싶습니다. 나는 빈 영역을 클릭하면, 그것은 girdView_ItemClick 메소드를 호출하지,

if (e.ClickedItem == gridView.SelectedItem || e.ClickedItem == null) 
     { 
      await Task.Delay(100); 
      gridView.SelectedItem = null; 
     } 

하지만 :

나는 시도했다. 그래서 그것은 쓸모가 없다.

아무도 아이디어가 있으십니까? 내가있는 gridview에서 빈 영역을 클릭하면

+0

이 어떤 언어입니다 예를 들면? –

+0

@aneeshjose 그걸 유감스럽게 생각합니다. C#입니다. 이상한데, C#을 선택하면 C로 바뀝니다. –

+0

UI의 스크린 샷을 게시 할 수 있습니까 ..? 그것은 우리가 당신의 문제를 더 잘 이해하는 데 도움이 될 것입니다 .. 또한, "나는 또한 선택을 취소하기 위해 빈 영역을 클릭하고 싶습니다."- 이것으로, 당신이 당신이 gridview가 아닌 ​​다른 것을 클릭 할 때마다 사라져 버리는 선택을 원한다는 것을 의미합니까? 선택된 상태입니까? – Pratyay

답변

0

가 내 말은,있는 gridview이 경우 =

널 선택, 당신은 GridViewTapped 이벤트 핸들을 구독하고 내부의 코드를 넣어 시도 할 수 있습니다. GridView을 클릭하면 호출됩니다. ItemClick 이벤트가 호출 될 때 호출하지 않으려면 단순히 "플래그"를 사용하여이를 제어 할 수 있습니다.

<GridView 
    x:Name="gridView" 
    IsItemClickEnabled="True" 
    ItemClick="girdView_ItemClick" 
    Background="Azure" 
    Tapped="gridView_Tapped"> 
    <GridView.ItemTemplate> 
    ... 
    </GridView.ItemTemplate> 
</GridView> 

코드 뒤에 :

private int flag=0; 
private async void girdView_ItemClick(object sender, ItemClickEventArgs e) 
{ 
    var gridView = sender as GridView; 
    if (e.ClickedItem == gridView.SelectedItem) 
    { 

     gridView.SelectedItem = null; 
    } 
    flag = 1; 
} 

private void gridView_Tapped(object sender, TappedRoutedEventArgs e) 
{ 
    if (flag == 0) 
    { 
     var gridView = sender as GridView; 
     gridView.SelectedItem = null; 
     gridView.SelectedIndex = -1; 
    } 
    else 
    { 
     flag = 0; 
    } 
} 
+0

하하, 고맙습니다. gridView_Tapped를 사용해야한다고 생각하지만, 어떻게해야할지 모르겠군요. 이제 알았어. 매우 감사합니다 –

관련 문제