提前致谢。
我认为这是一个简单的问题,但我不知道。
在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;
}
但是,当我点击空白区域时, NOT 会调用girdView_ItemClick
方法。所以没用。
谢谢,有人有想法吗?
答案 0 :(得分:0)
我的意思是,当我在gridview中单击空白区域时,gridview selected = null
在这种情况下,您可以尝试订阅GridView
的{{3}}事件句柄并将代码段放入其中。单击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;
}
}