[英]UWP: How to get GridView Item number (not selected by any click) under the mouse (pointer)?
[英]UWP GridView click blank to clear selected
提前致謝。
我認為這是一個簡單的問題,但我不知道。
在MianPage中,我有一個girdview。
然后聲明Itemclick
方法。
IsItemClickEnabled="True"
IsRightTapEnabled="True"
ItemClick="girdView_ItemClick"
RightTapped="girdView_RightTapped"
在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;
}
}
當我單擊同一項目時,可以將其取消。 但我也想單擊空白區域以取消選擇。
我試過了 :
if (e.ClickedItem == gridView.SelectedItem || e.ClickedItem == null)
{
await Task.Delay(100);
gridView.SelectedItem = null;
}
但是,當我單擊空白區域時,它不會調用girdView_ItemClick
方法。 因此它是沒有用的。
謝謝,有人有想法嗎?
我的意思是,當我單擊gridview中的空白區域時,所選的gridview = null
在這種情況下,您可以嘗試訂閱GridView
的Tapped
事件句柄,然后將代碼片段放入其中。 當單擊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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.