我在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,任何人都可以帮助我做到这一点,如果它是可能的话。
提前谢谢你。
/彼得
答案 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;
}
}
/彼得