我正在开发一个UWP应用程序,在一个场景中我必须在ListView上添加拖放功能。但是,当定义ItemsTemplate时,DragItemsStarting事件不会触发。
在一种情况下,当我通过选择其边框对ListViewItem执行拖动操作时,它运行良好,但是当我执行拖动项目时它不起作用。
Here is the Image for drag operation on items border:
以下是XAML代码:
<ListView Grid.Row="3"
ScrollViewer.IsScrollInertiaEnabled="True"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollMode="Enabled"
CanDragItems="True"
CanReorderItems="True"
ReorderMode="Enabled"
AllowDrop="True"
SelectionMode="Single"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
DragItemsStarting="{x:Bind VM.DragItemsStarting, Mode=OneWay}"
DragOver="{x:Bind VM.DragOver, Mode=OneWay}"
Drop="{x:Bind VM.DragDrop, Mode=OneWay}"
ItemsSource="{x:Bind ItemSource, Mode=OneWay}">
<ListView.ItemTemplate>
<DataTemplate x:DataType="model:Model">
<Button HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
Command="{Binding DataContext.PageCommand, ElementName=pageMain}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="10" />
</Grid.RowDefinitions>
<TextBlock Text="{x:Bind ShowName,Mode=OneWay}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Foreground="Black"
TextWrapping="WrapWholeWords"
Margin="3" />
<ProgressBar Grid.Row="1"
Margin="0"
Value="25"
Height="8"
VerticalAlignment="Bottom"
Foreground="Green" />
</Grid>
</Button>
</DataTemplate>
</ListView.ItemTemplate>
有什么办法可以在完整的ListViewItem上执行拖动操作吗?
答案 0 :(得分:0)
如果您在应用程序中使用拖放功能,请使用Button
或其他内容,则应避免在ItemTemplate
内直接使用Grid
。
现在,将ListItem
设置IsItemClickEnabled
媒体资源上的点击功能设为True
,并在ItemClick
上使用ListView
事件。