我有一个ListView,我希望在按下鼠标时选择ListView。 (像Buttons的ClickMode属性一样)。有什么解决方案吗?
答案 0 :(得分:0)
我尝试将按钮放在ListView模板中并更改其ClickMode属性
默认情况下,鼠标释放时会触发SelectionChanged
。好像我们无法改变它。因此,我们可以将按钮放在ListView
项模板中,并根据您的想法更改其单击模式,或者为项目模板中的容器注册PointerPressed
事件,这将在未按下鼠标时触发。< / p>
但我无法访问在ListView中单击的对象
要访问点击的项目,您仍然可以使用ListView
<ListView Name="CategoryLIstView" Grid.Row="1" ItemsSource="{x:Bind categories}" HorizontalAlignment="Center" Margin="10" VerticalAlignment="Top" IsItemClickEnabled="True" SelectionChanged="CategoryLIstView_SelectionChanged" ItemClick="CategoryLIstView_ItemClick" PointerPressed="CategoryLIstView_PointerPressed">
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:Category">
<StackPanel Margin="0" PointerPressed="StackPanel_PointerPressed">
<StackPanel Orientation="Vertical" >
<TextBlock Text="{x:Bind Name}" Foreground="Blue" FontWeight="Bold" FontFamily="Yu Gothic" FontSize="17"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
之类的属性来获取所选项目。例如:
XAML代码
private async void StackPanel_PointerPressed(object sender, PointerRoutedEventArgs e)
{
await new Windows.UI.Popups.MessageDialog("point press").ShowAsync();
System.Diagnostics.Debug.WriteLine(CategoryLIstView.SelectedIndex);
}
代码背后:
C# 7.0