我遇到连续两次选择列表视图项的问题。所以当我选择一个项目时,它会加载另一个列表。这不是问题,但当我单击返回以返回上一个列表视图时,我无法再单击相同的列表视图项。 我做了一些阅读,似乎有一个想法是在代码中的某个点“取消选择”列表视图项,以便能够再次选择相同的项目。 选择是使用MVVM模型完成的,因此处理选择的代码等。
$("#notify > tbody > tr[data-notify='101']")
OpenRoutePage方法只是打开下一个列表视图,正如我所说,这样可以正常工作。 我附上了一些图片来更好地说明问题。
任何帮助将不胜感激,原谅艺术品。
答案 0 :(得分:4)
,您需要设置SelectedItem = null
protected void ItemSelected(object source, ItemSelectedEventArgs args) {
// do whatever actions on selected item here
// then reset SelectedItem
((ListView)source).SelectedItem = null;
}
答案 1 :(得分:1)
您可以创建不同的事件处理程序来解决问题,即ItemTapped和ItemSelected事件处理程序。单击/点击后首先触发ItemSelected事件,然后触发ItemTapped事件。首次点击/单击列表视图项时,触发ItemSelected事件后触发ItemTapped事件两次。要解决此问题,您可以附加两个事件处理程序,只需设置/清除布尔属性。
示例:
private bool _isSelected;
private void ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
_isSelected = true;
}
private void ListView_ItemTapped(object sender, ItemTappedEventArgs e)
{
if(!_isSelected)
{
//do work here
}
_isSelected = false;
}
这里,首先触发ItemSelected事件并设置变量_isSelected。然后触发ItemTapped事件两次。 ItemTapped事件中的条件阻止用户代码在第一次调用中执行,然后允许在第二次调用中执行代码。