WPF MVVM Applicatiionのウィンドウにデータグリッドがあり、別のウィンドウに別のタイプのオブジェクトのデータグリッドがあります。
異なるデータグリッド内の2つのオブジェクトが一致する限り、問題はありません。しかし、今回はこれらのウィンドウに2つの異なるオブジェクトがあります。
ターゲットウィンドウでやりたいことは、コードビハインドで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長い間働いていたように思えますが、ソースオブジェクトをターゲットオブジェクトに直接変換しようとしていたので、これが正しい解決策です。
private void target_Drop(object sender, DragEventArgs e)
{
MyTargetType data = e.Data.GetData(typeof(MyTargetType)) as MyTargetType;
if (data != null)
{
target.Content = data;
}
}
/ピーター