DataGridDragDropTarget是否已从最新版本的Silverlight工具包中删除?

时间:2011-05-28 05:01:40

标签: silverlight xaml silverlight-4.0 silverlight-toolkit

我正在使用Silverlight 4和Silverlight Toolkit 4月10日版本(dll从此文件夹中引用:%Program Files%\ Microsoft SDKs \ Silverlight \ v4.0 \ Toolkit \ Apr10 \ Bin)。但是,在注册命名空间后,将toolkit:DataGridDragDropTarget添加到XAML会导致此错误:


`The tag 'DataGridDragDropTarget' does not exist in XML namespace 'clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit'.`

但是,其他DragDropTargets可用:ListBoxDragDropTarget,PanelDragDropTarget,TreeViewDragDropTarget。

3 个答案:

答案 0 :(得分:3)

我怀疑工具包团队在准备分发包时出现了某种遗漏错误:如果您下载工具包源代码(从这里:http://silverlight.codeplex.com/releases/view/43528)并检查存档的Bin文件夹,系统.Windows.Controls.Data.Toolkit.dll dll就在那里 - 那就是现在包含DataGridDragAndDrop本身的那个。只需将其复制到您的tollkit分发dll的其余部分并从您的项目中引用:

    <dataToolkit:DataGridDragDropTarget
                x:Name="DragAndDrop"
                xmlns:dataToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Toolkit"
                AllowDrop="True" >

答案 1 :(得分:0)

我不知道为什么它会从工具包中消失,因为有很多在线样本仍在使用DataGridDragDropTarget。我通过从工具箱中包装PanelDragDropTarget内的网格来解决这个问题。像魅力一样。


<toolkit:PanelDragDropTarget x:Name="DragAndDrop" AllowDrop="True" AllowedSourceEffects="Move" >
   <Grid x:Name="LayoutRoot" Width="400" Height="400" />
</toolkit:PanelDragDropTarget>

答案 2 :(得分:0)

它实际上仍然在工具包的二进制文件中(至少是通过nuget分发的那些),但是它与其他的dragdrop助手不同。

您只需要添加以下命名空间定义:

xmlns:dragdrop="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Toolkit"