列表视图双击项目
我目前正在做一个ListView中的多个ListViewItems应用程序,对双击事件作出反应。但是,当双击ListView时,我需要知道哪些项目被双击。列表视图双击项目
当双击UWP中的列表视图时,它在发出双击事件之前不会选择该项目。因此,我无法通过myListView.SelectedItem获取项目。 UWP似乎不支持命中测试,除非我错过了某些东西。
想法?
我解决我的问题,通过执行以下操作:
我设置IsHitTestVisible财产上在ListViewItem内网格是假的(仅适用,如果你在列表视图中有控制)。
我订阅了ListView的双窃听事件
当事件触发,我用DoubleTappedRoutedEventArgs抢原始出处和铸造,为ListViewItem的(或在我的情况,我的用户)。
下面的代码:
定制的ListViewItem: XAML
<ListViewItem x:Name="ListBoxItemContainer" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" Padding="0,0">
<Grid x:Name="MainGrid" HorizontalAlignment="Stretch" IsHitTestVisible="False">
<!-- Your controls here -->
</Grid>
</ListViewItem>
列表查看代码:
private async void MainListView_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
{
var test = (ListViewItem)MainListView.SelectedItem;
// Test is your reference to the list view item that was clicked
}
注意:请确保您订阅到您的列表视图的双抽头事件。
试试这个:
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (ListView.SelectedIndex == -1) return;
_previousIndex = ListView.SelectedIndex;
if (_previousIndex == ListView.SelectedIndex)
{
//double-click occured
_previousIndex = -2;
}
ListView.SelectedIndex = -1;
}
当您发表原始评论时,onselectionchanged事件不会在双击项目时触发。 – Saghen
使用它你不需要订阅任何双击 –
检查这个问题https://stackoverflow.com/questions/45812310/uwp-listboxitem-click-trigger/45814015#45814015你也可以创建一个字段来保存先前选择的索引来比较双击 –
选择当一件物品被双击时,改变不会发生火灾。这是我的问题的根源。 – Saghen
尝试在ListViewItem的DataTemplate而不是ListView上注册DoubleTapped事件。 – kennyzx