0

好吧,这让我发疯了!我花了大半天的时间来解决这个问题。我正在使用基于 XAML 的 Windows 8.1 应用程序,基本上我正在尝试在 GridView 中的组之间实现一些拖放功能。到目前为止,一切都在工作,除了当我尝试将一个项目“放入”一个新组时。经过很长时间后,我将其范围缩小到没有为 GroupStyle.Panel VariableSizedWrapGrid 触发的“drop”事件。我试图按照网页的内容进行操作。

我一生都无法弄清楚为什么它不会开火。我已经尝试在我的 gridview 中测试其他放置事件,它们似乎都按预期工作。

以下是我目前拥有的代码:

    <GridView
        x:Name="itemGridView"
        AutomationProperties.AutomationId="ItemGridView"
        AutomationProperties.Name="Grouped Items"
        Grid.RowSpan="2"
        Padding="116,137,40,46"
        ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}, Mode=TwoWay}"
        SelectionMode="None"
        CanDragItems="True"
        DragItemsStarting="itemGridView_DragItemsStarting"
        IsSwipeEnabled="true"
        IsItemClickEnabled="True"
        ItemClick="ItemView_ItemClick">
        <GridView.ItemTemplate>
            <DataTemplate>
                <VariableSizedWrapGrid HorizontalAlignment="Left" Width="250" Height="250">
                    <Border Background="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}">
                        <Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="splash"/>
                    </Border>
                    <StackPanel VerticalAlignment="Bottom" Background="{ThemeResource ListViewItemOverlayBackgroundThemeBrush}">
                        <TextBlock Text="{Binding Path=Name }" Foreground="{ThemeResource ListViewItemOverlayForegroundThemeBrush}" Style="{StaticResource TitleTextBlockStyle}" Height="60" Margin="15,0,15,0"/>
                    </StackPanel>
                </VariableSizedWrapGrid>
            </DataTemplate>
        </GridView.ItemTemplate>
        <GridView.ItemsPanel>
            <ItemsPanelTemplate>
                <ItemsWrapGrid GroupPadding="0,0,70,0"/>
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>
        <GridView.GroupStyle>
            <GroupStyle HidesIfEmpty="False">
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <VariableSizedWrapGrid Margin="0,0,0,2">
                            <Button Foreground="{ThemeResource ApplicationHeaderForegroundThemeBrush}"
                                AutomationProperties.Name="Group Title"
                                Style="{StaticResource TextBlockButtonStyle}"
                                    Click="Button_Click">
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="{Binding Name}" Margin="0,-11,10,10" Style="{StaticResource SubheaderTextBlockStyle}" TextWrapping="NoWrap" />
                                    <TextBlock Text="{StaticResource ChevronGlyph}" FontFamily="Segoe UI Symbol" Margin="0,-11,0,10" Style="{StaticResource SubheaderTextBlockStyle}" TextWrapping="NoWrap" />
                                </StackPanel>
                            </Button>
                        </VariableSizedWrapGrid>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
                <GroupStyle.Panel>
                    <ItemsPanelTemplate>
                        <VariableSizedWrapGrid Drop="VariableSizedWrapGrid_Drop" AllowDrop="True"/>
                    </ItemsPanelTemplate>
                </GroupStyle.Panel>
            </GroupStyle>
        </GridView.GroupStyle>
    </GridView>

我真的希望有人能看到我的错误!我确信这很简单,但我只需要有人指出显而易见的事情。:)

4

1 回答 1

0

有同样的问题,然后找到这个例子: How to drag item between groups in grouped gridview

我尝试将 StackPanel 用作 GridView 的 ItemsPanel,为我工作。尝试为您的 GridView 使用 StackPanel 而不是 ItemsWrapGrid。

 <ItemsPanelTemplate>
     <StackPanel Orientation="Horizontal" />
 </ItemsPanelTemplate>

仍然无法理解这种行为,有什么想法吗?

于 2013-11-04T16:25:56.503 回答