我有一个XAML文件,它应该可以在GridView中拖动GridViewItems。现在我为GridView项目和一个DataTemplate使用ItemSource,以我希望显示它们的方式显示它们。这样可行。发生以下问题:自从我开始使用DataTemplate后,GridViewItems无法拖动。我只能拖动DataTemplate。这很奇怪,所以我可以用来拖动的唯一部分是GridViewItem的左侧和右侧区域,因为这用于保证金。如何使GridViewItem作为可拖动对象而不是XAML中的DataTemplate?
为什么DataTemplate是“可拖动”控件而不是GridViewItem?我已经尝试了许多修复程序,但没有一个看起来工作得很好..我可以当然使它在没有DataTemplate的情况下工作,但是像这样使用它更清洁。
<GridView Name="canvas" ItemsSource="{Binding GridviewItemList}" CanReorderItems="{Binding CanvasCanReorder}" CanDragItems="{Binding CanvasCanDrag}" ReorderMode="Enabled" AllowDrop="True" VerticalAlignment="Center" Width="660" Height="110" IsSwipeEnabled="False" ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.HorizontalScrollMode="Disabled">
<GridView.ItemTemplate>
<DataTemplate x:DataType="local:MainPageItems">
<GridViewItem Name="{x:Bind GvName}" Margin="13 0 15 0">
<Border Width="100" Height="100" Background="{x:Bind BdBackground, Mode=OneWay}">
<TextBlock Height="60" Width="30" FontSize="40" Text="{x:Bind TbText, Mode=TwoWay}" Margin="{x:Bind TbMargin, Mode=TwoWay}"></TextBlock>
</Border>
</GridViewItem>
</DataTemplate>
</GridView.ItemTemplate>
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="DragItemsCompleted">
<core:InvokeCommandAction Command="{Binding CanvasDragCompleted}"></core:InvokeCommandAction>
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</GridView>
在此先感谢!