У мене є сітка даних у вікні мого WPF MVVM Applicatiion, в іншому вікні у мене є сітка даних іншого типу об’єкта.
Поки обидва об'єкти в різних сітках даних збігаються, то проблем не виникає. Але з цієї нагоди у мене є два різні предмети у цих вікнах.
Що я хочу зробити у своєму цільовому вікні, так це те, що в моєму коді змінити об’єкт у 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));
}
}
Однак перетворення завжди не вдається, і я завжди отримую значення null у своєму операторі GetData (), чи може хто-небудь допомогти мені отримати це право, якщо це навіть можливо.
Спасибі заздалегідь.
/ Петро
Відповіді:
0 для відповіді № 1Здається, ніби я працював надто довго, я намагався перетворити свій вихідний об’єкт на цільовий безпосередньо, тож це правильне рішення.
private void target_Drop(object sender, DragEventArgs e)
{
MyTargetType data = e.Data.GetData(typeof(MyTargetType)) as MyTargetType;
if (data != null)
{
target.Content = data;
}
}
/ Петро