Перетащите проблему между двумя сетками данных в WPF
Всем Привет,
I'm developing an application in WPF, in it I use a DataGridsЗдесь я пытаюсь реализовать функцию перетаскивания между двумя сетками.Я пытаюсь перетащить строку из одной datagrid и перейти к другой datagrid.
Здесь я использую приведенный ниже код.
код XAML
<DataGrid HorizontalAlignment="Left" AutoGenerateColumns="True" Name="SourceGrid" Margin="12,29,0,12" Width="325" PreviewMouseLeftButtonDown="SourceGrid_PreviewMouseLeftButtonDown" /> <DataGrid Name="DestGrid" AutoGenerateColumns="True" HorizontalAlignment="Right" AllowDrop="True" Margin="0,29,16,12" Width="325" Drop="DestGrid_Drop"/>
Код XAML.CS-это
private void SourceGrid_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { DataGrid parent = (DataGrid)sender; dragSource = parent; object data = GetDataFromSourceGrid(dragSource, e.GetPosition(parent)); if (data != null) { DragDrop.DoDragDrop(parent, data, DragDropEffects.Move); } } private static object GetDataFromSourceGrid(DataGrid source, Point point) { UIElement element = source.InputHitTest(point) as UIElement; if (element != null) { object data = DependencyProperty.UnsetValue; while (data == DependencyProperty.UnsetValue) { data = source.ItemContainerGenerator.ItemFromContainer(element); if (data == DependencyProperty.UnsetValue) { element = VisualTreeHelper.GetParent(element) as UIElement; } if (element == source) { return null; } } if (data != DependencyProperty.UnsetValue) { return data; } } return null; } private void DestGrid_Drop(object sender, DragEventArgs e) { DataGrid parent = (DataGrid)sender; object data = e.Data.GetData(typeof(string)); ((IList)dragSource.ItemsSource).Remove(data); parent.Items.Add(data); }
Здесь все работает нормально, но в
DestGrid_Dropсобытие
object data = e.Data.GetData(typeof(string));в этой строке я получаю нулевое значение.
Кто-нибудь из вас не мог бы мне помочь.
Что я уже пробовал:
я перепробовала столько статей.Тот же код, если я могу применить к спискам, он работает нормально.