我正在使用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。
答案 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"