【发布时间】:2015-02-19 20:29:13
【问题描述】:
作为一个练习,我正在尝试做一个基本的探索者。
我已经成功地将文件和/或(多个)文件夹拖放到我的资源管理器中,但希望能够在 GridView 中拖放。 主要是对文件进行重新排序或将文件拖到视图中的文件夹中。
在几次搜索中,我发现,首先,我应该将以下属性添加到我的 GridView:
CanReorderItems="True"
AllowDrop="True"
CanDragItems="True"
但是VS给了我以下错误:
在类型“GridView”中找不到属性“CanDragItems”。
我已经看到多个将这些属性添加到 GridView 的示例。 我一定在这里遗漏了一些明显的东西。
我的 XAML 代码如下:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title=""
Height="350"
Width="525"
MinHeight="200"
MinWidth="200">
<Grid>
<Grid AllowDrop="True"
Drop="Grid_Drop">
<Grid.RowDefinitions>
<RowDefinition Height="26" />
<RowDefinition />
</Grid.RowDefinitions>
<ToolBar Grid.Row="0"
Grid.Column="0"
HorizontalAlignment="Stretch"
Name="toolBar1"
VerticalAlignment="Stretch">
<Button HorizontalAlignment="Left"
Name="btnFolderUp"
VerticalAlignment="Stretch"
Click="btnFolderUp_Click">
<Image Source="images\folder-up.png" />
</Button>
<Button HorizontalAlignment="Left"
Name="btnFolderNew"
VerticalAlignment="Stretch"
Click="btnFolderNew_Click">
<Image Source="images\folder-new.png" />
</Button>
</ToolBar>
<ListView Grid.Row="1"
Grid.Column="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Name="lvDataBinding"
MouseDoubleClick="lvDataBinding_MouseDoubleClick">
<ListView.View>
<GridView CanReorderItems="True"
AllowDrop="True"
CanDragItems="True">
<GridView.Columns>
<GridViewColumn>
<GridViewColumnHeader Content="Name"
Name="Name"
Click="GridViewColumnHeader_Click" />
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Path=fileIcon}"
Margin="3,3,3,3"
Width="15"
Height="15" />
<TextBlock Text="{Binding Path=Name}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn>
<GridViewColumnHeader Content="DateCreated"
Name="DateCreated"
Click="GridViewColumnHeader_Click" />
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=DateCreated}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Grid>
</Grid>
</Window>
【问题讨论】:
-
我在某些地方看到 CanReorderItems 属性可能仅适用于 Windows 8 更高版本。这并不能解释为什么 AllowDrop 不起作用。
-
CanDragItems 也是 Windows8+
-
我现在知道了。但是,AllowDrop 显示相同的错误。可能是因为我在树上已经有了一个更高的allowdrop吗?
-
AllowDrop、canReorder 和 CanDragItems 不是 GridView 的成员,不是吗? msdn.microsoft.com/es-es/library/…
-
我想看看你的参考
标签: c# asp.net wpf xaml gridview