V okne svojej aplikácie WPF MVVM mám datagrid, v inom okne mám datagrid iného typu objektu.
Pokiaľ sa dva objekty v rôznych datagridoch zhodujú, potom nie je problém. Ale pri tejto príležitosti mám v týchto oknách dva rôzne objekty.
Čo chcem urobiť v mojom cieľovom okne je, že v mojom kóde za zmenou objektu v DragEvent na objekt, ktorý sa zhoduje s objektom prijímajúcich mriežok, niečo ako toto:
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));
}
}
Konverzia však vždy zlyhá a vo svojom vyhlásení GetData () sa vždy stávam neplatným. Môže mi niekto pomôcť získať toto právo, ak je to vôbec možné.
Vopred ďakujem.
/Peter
odpovede:
0 pre odpoveď č. 1Zdá sa, že som pracoval príliš dlho, snažil som sa priamo konvertovať zdrojový objekt na cieľový, takže toto je správne riešenie.
private void target_Drop(object sender, DragEventArgs e)
{
MyTargetType data = e.Data.GetData(typeof(MyTargetType)) as MyTargetType;
if (data != null)
{
target.Content = data;
}
}
/Peter