WPF拖拽;将整数丢弃到对象的datagrid中

时间:2011-08-12 16:05:53

标签: wpf mvvm drag-and-drop

我在WPF MVVM应用程序的窗口中有一个数据网格,在另一个窗口中我有另一种类型对象的数据网格。

只要不同datagrids中的两个对象匹配,就没有问题。但在这种情况下,我在这些窗口中有两个不同的对象。

我想在目标窗口中做的是在我的代码后面将DragEvent中的对象更改为与接收网格对象匹配的对象,如下所示:

void dgdIngredient_PreviewDrop(object sender, DragEventArgs e)
    {
        if ((e.Data.GetData("**MyTypeOfObject**",true) as VMProductComponent) != null)
        {
            VMProductComponent vmp = new VMProductComponent();
            e.Data.SetData((e.Data.GetData(typeof(object)) as FOODit.Matilda.ViewModel.VMProductComponent));
        }
    }

然而,转换总是失败,我总是在我的GetData()语句中得到null,任何人都可以帮助我做到这一点,如果它是可能的话。

提前谢谢你。

/彼得

1 个答案:

答案 0 :(得分:0)

似乎我已经工作了太久,我试图直接将我的源对象转换为我的目标对象,所以这是正确的解决方案。

    private void target_Drop(object sender, DragEventArgs e)
{
  MyTargetType data = e.Data.GetData(typeof(MyTargetType)) as MyTargetType;
  if (data != null)
  {
    target.Content = data;
  }
}

/彼得