uwp-community-toolkit:GridView - 在MasterDetail上使用CanDrag和DragStarting对usercontrol进行Pb选择

时间:2018-02-27 18:48:55

标签: c# uwp drag-and-drop

我使用uwp社区模板制作单页应用程序,使用templateitem添加gridview并激活多选。在那里,我添加了#34; CanDrag"和事件" DragStarting"关于itemtemplate。

结果是:当堆栈面板上的clic(蓝色)或图像包含在itemtemplate中时没有选择。

有什么想法吗?

我的代码,只需将网格添加到sampleorder上的默认主视图插件。

    <Page.Resources>
    <DataTemplate x:Key="detTemplate" x:DataType="model:SampleOrder">
        <StackPanel Height="64" Orientation="Horizontal"  CanDrag="True" DragStarting="Items_DragStarting" >
            <FontIcon Tag="{x:Bind HashIdentIcon}" FontSize="40" Glyph="{x:Bind SymbolAsChar}" VerticalAlignment="Center" />
            <StackPanel Margin="12,0,0,0" VerticalAlignment="Center" Width="150" Background="Aqua">
                <TextBlock Text="{x:Bind Company}" Tag="{x:Bind HashIdentTitle}" Style="{ThemeResource ListTitleStyle}" />
                <TextBlock Text="{x:Bind Status}" Style="{StaticResource ListSubTitleStyle}"/>
            </StackPanel>
        </StackPanel>
    </DataTemplate>
</Page.Resources>
<Grid
    x:Name="ContentArea"
    Margin="{StaticResource MediumLeftRightMargin}">

    <Grid.RowDefinitions>
        <RowDefinition x:Name="TitleRow" Height="48"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <TextBlock
        x:Name="TitlePage"
        x:Uid="Main_Title"
        Style="{StaticResource PageTitleStyle}" />

    <Grid 
        Grid.Row="1" 
        Background="{ThemeResource SystemControlPageBackgroundChromeLowBrush}">

        <GridView x:Name="Lines" Background="{ThemeResource AppBarBackgroundThemeBrush}" SelectionMode="Multiple" IsMultiSelectCheckBoxEnabled="False" MinHeight="150" 
                ItemsSource="{x:Bind ViewModel.SampleItems, Mode=OneWay}"
                ItemTemplate="{StaticResource detTemplate}" >
        </GridView>
    </Grid>
    <!--  Adaptive triggers  -->
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="WindowStates">
            <VisualState x:Name="WideState">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="640"/>
                </VisualState.StateTriggers>
            </VisualState>
            <VisualState x:Name="NarrowState">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="0"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="TitlePage.Margin" cu:Value="48,0,12,7" fcu:Value="0,0,12,7"/>
                </VisualState.Setters>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
</Grid>

1 个答案:

答案 0 :(得分:0)

不要将拖拽内容放在模板上。而是把它放在GridView上。

<GridView AllowDrop="True" 
          CanDragItems="True"
          DragItemsStarting="OnDragItemsStarting"
          DragOver="OnDragOver"/>

以下是一些可以提供帮助的资源: