2015-10-26 42 views
0

我正在开发适用于WIndows 10的应用程序,并且我想在两个列表中实现拖放文件。但回落事件不是在Windows 10应用射击.. 以前它是回环的Windows 8.1 .. 以下是我的代码:拖放事件不在UWP XAML中触发(Windows 10)

<ListView Grid.Row="1" x:Name="TasksList" SelectionMode="None" HorizontalAlignment="Stretch" 
    ScrollViewer.VerticalScrollBarVisibility="Hidden" IsItemClickEnabled="True" 
    VerticalAlignment="Stretch" 
    ItemsSource="{Binding Tasks}" ScrollViewer.VerticalScrollMode="Enabled" 
    CanReorderItems="True" ShowsScrollingPlaceholders="False" 
    DragItemsStarting="GridViewDragItemsStarting" AllowDrop="True" IsSwipeEnabled="False" 
    Drop="GridViewDrop" DragEnter="TasksList_DragEnter" CanDragItems="True" 
    ItemContainerStyle="{StaticResource ClientListViewItemStyle}" > 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <Border BorderThickness="0,0,0,1" BorderBrush="{StaticResource MydesqBorderBrush}" Padding="10"> 
       <Grid> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="Auto"/> 
         <ColumnDefinition Width="*"/> 
        </Grid.ColumnDefinitions> 
        <Grid Grid.Column="0" Width="80" Height="60" Background="{Binding DueDateIndicatorColor,Converter={StaticResource HexToSolidColorBrushConverter}}" VerticalAlignment="Top" HorizontalAlignment="Center"> 
         <Image x:Name="ImgClient" Source="{Binding Client.ClientPictureUrl,Converter={StaticResource ServerUrlConverter}}" Stretch="Fill" Visibility="{Binding Source, Converter={StaticResource NullToInvisibilityConverter}, ElementName=ImgClient}" Width="80" Height="60"/> 
         <Image x:Name="ImgAccount" Source="{Binding ImageUrl}" Width="35" Height="35" Visibility="{Binding Source, Converter={StaticResource NullToInvisibilityConverter}, ElementName=ImgAccount}" VerticalAlignment="Center" HorizontalAlignment="Center"/> 
        </Grid> 
        <Grid Grid.Column="1" Margin="10,0,0,0"> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="Auto"/> 
          <RowDefinition Height="Auto"/> 
          <RowDefinition Height="Auto"/> 
         </Grid.RowDefinitions> 
         <TextBlock Text="{Binding TaskTitle}" Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="20" Foreground="{Binding TitleColor, Converter={StaticResource HexToSolidColorBrushConverter}}"/> 
         <StackPanel Grid.Row="1" Orientation="Horizontal"> 
          <Image Width="20" Height="20" VerticalAlignment="Center" Source="/Assets/Images/user_gray.png" Margin="0,0,10,0"/> 
          <TextBlock Text="{Binding TaskType}" FontSize="16" VerticalAlignment="Center" Foreground="{Binding SubTitleColor, Converter={StaticResource HexToSolidColorBrushConverter}}" Margin="5,0,0,0"/> 
         </StackPanel> 
         <StackPanel Grid.Row="2" Orientation="Horizontal"> 
          <Image Width="20" Height="20" VerticalAlignment="Center" Source="/Assets/Images/calendar_gray.png" Margin="0,0,10,0"/> 
          <TextBlock Text="{Binding DueDate, ConverterParameter=\{0:dd.MM.yyyy\}, Converter={StaticResource DateToStringConverter}}" FontSize="16" VerticalAlignment="Center" Foreground="{Binding SubTitleColor, Converter={StaticResource HexToSolidColorBrushConverter}}" Margin="5,0,0,0"/> 
         </StackPanel> 
        </Grid> 
       </Grid> 
      </Border> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
    <Interactivity:Interaction.Behaviors> 
     <Core:EventTriggerBehavior EventName="ItemClick"> 
      <behaviors:NavigateWithEventArgsToPageAction 
      TargetPage="Mydesq.Client.UWP.Views.AddTaskPage" 
      EventArgsParameterPath="ClickedItem" /> 
     </Core:EventTriggerBehavior> 
     <Core:EventTriggerBehavior EventName="Drop"> 
      <Core:InvokeCommandAction Command="{Binding DropTaskCommand}" CommandParameter="{Binding ElementName=TasksList,Path=SelectedItem}"/> 
     </Core:EventTriggerBehavior> 
    </Interactivity:Interaction.Behaviors> 
</ListView> 
+0

什么是“TasksList_DragEnter”事件?您应该在DragEventArgs上设置AcceptedOperation,例如像这样: e.AcceptedOperation = Windows.ApplicationModel.DataTransfer.DataPackageOperation.Copy。 – gregkalapos

+0

现在感谢它工作 –

+0

太棒了!我发布它作为答案..如果你不介意请接受它。 – gregkalapos

回答

2

确保您设置AcceptedOperation属性在ListView的DragEnter事件。例如。像这样:

private void TasksList_DragEnter(object sender, DragEventArgs e) 
{ 
    e.AcceptedOperation = Windows.ApplicationModel.DataTransfer.DataPackageOperation.Copy; 
} 
0

MainPage

AllowDrop="True" 

也有类似的问题与Grid固定的,即使没有DragEnter事件。

(我知道你已经有这个属性了(我的回答是给其他人的......))