<
p
>private BindingSource _bindingSource;<
br
>
DataTable gridViewDataTable = new DataTable();<
br
>
<
br
>
public SocPersonal()<
br
>
{<
br
>
InitializeComponent();<
br
> BaseGridBehavior gridBehavior = this.radGridView2.GridBehavior as BaseGridBehavior;<
br
> gridBehavior.UnregisterBehavior(typeof(GridViewDataRowInfo));<
br
> gridBehavior.RegisterBehavior(typeof(GridViewDataRowInfo), new CustomRowGridBehavior());<
br
><
br
> RadDragDropService dragDropService = radGridView2.GridViewElement.GetService<
RadDragDropService
>();<
br
> dragDropService.PreviewDragStart += svc_PreviewDragStart;<
br
> dragDropService.PreviewDragOver += svc_PreviewDragOver;<
br
> dragDropService.PreviewDragDrop += svc_PreviewDragDrop;<
br
> gridViewDataTable.Columns.Add("key_socRabotnik", typeof(string));<
br
> gridViewDataTable.Columns.Add("[ФИО]", typeof(string));<
br
><
br
> radListView1.ListViewElement.DragDropService.PreviewDragOver += PreviewDragOver;<
br
> radListView1.ListViewElement.DragDropService.PreviewDragDrop += PreviewDragDrop;<
br
><
br
> MyRussionRadGridLocalizationProvider.CurrentProvider = new MyRussionRadGridLocalizationProvider();<
br
> radGridView1.TableElement.Text = MyRussionRadGridLocalizationProvider.TableElementText;<
br
> CheckForIllegalCrossThreadCalls = false; <
br
>
HandleCreated += Form_HandleCreated;<
br
>
}<
br
>
<
br
>
#region Drop<
br
>
private void svc_PreviewDragStart(object sender, PreviewDragStartEventArgs e)<
br
>
{<
br
>
e.CanStart = true;<
br
>
}<
br
>
<
br
>
private void svc_PreviewDragOver(object sender, RadDragOverEventArgs e)<
br
>
{<
br
>
if (e.DragInstance is GridDataRowElement)<
br
>
{<
br
>
e.CanDrop = e.HitTarget is DetailListViewDataCellElement ||<
br
>
e.HitTarget is DetailListViewElement;<
br
>
}<
br
>
}<
br
>
<
br
>
private void svc_PreviewDragDrop(object sender, RadDropEventArgs e)<
br
>
{<
br
>
DetailListViewDataCellElement targetCell = e.HitTarget as DetailListViewDataCellElement;<
br
>
DetailListViewElement targetElement = e.HitTarget as DetailListViewElement;<
br
>
GridDataRowElement draggedRow = e.DragInstance as GridDataRowElement;<
br
>
<
br
>
if (draggedRow == null)<
br
>
{<
br
>
return;<
br
>
}<
br
>
ListViewDataItem item = new ListViewDataItem();<
br
>
DataRow draggedDataBoundItem = ((DataRowView)draggedRow.RowInfo.DataBoundItem).Row;<
br
>
if (targetElement != null)<
br
>
{<
br
>
((RadListViewElement)targetElement.Parent).Items.Add(item);<
br
>
}<
br
>
if (targetCell != null)<
br
>
{<
br
>
BaseListViewVisualItem targetVisualItem = targetCell.RowElement;<
br
>
<
br
>
int insertIndex = targetCell.Row.ListView.Items.IndexOf(targetVisualItem.Data);<
br
>
if (insertIndex > -1)<
br
>
{<
br
>
targetCell.Row.ListView.Items.Insert(insertIndex, item);<
br
>
}<
br
>
}<
br
>
item["key_socRabotnik"] = draggedDataBoundItem["key_socRabotnik"];<
br
>
item["[ФИО]"] = draggedDataBoundItem["[ФИО]"];<
br
>
<
br
>
gridViewDataTable.Rows.Remove(draggedDataBoundItem);<
br
>
}<
br
>
<
br
>
private void PreviewDragOver(object sender, RadDragOverEventArgs e)<
br
>
{<
br
>
e.CanDrop = e.HitTarget is GridTableElement ||<
br
>
e.HitTarget is GridDataRowElement;<
br
>
}<
br
>
<
br
>
private void PreviewDragDrop(object sender, RadDropEventArgs e)<
br
>
{<
br
>
BaseListViewVisualItem draggedItem = e.DragInstance as BaseListViewVisualItem;<
br
>
GridDataRowElement rowElement = e.HitTarget as GridDataRowElement;<
br
>
GridTableElement tableElement = e.HitTarget as GridTableElement;<
br
>
<
br
>
if (rowElement == null && tableElement == null)<
br
>
{<
br
>
return;<
br
>
}<
br
>
e.Handled = true;<
br
>
DataRow newRow = gridViewDataTable.NewRow();<
br
>
newRow["key_socRabotnik"] = draggedItem.Data["key_socRabotnik"];<
br
>
newRow["[ФИО]"] = draggedItem.Data["[ФИО]"];<
br
>
if (tableElement != null)<
br
>
{<
br
>
gridViewDataTable.Rows.Add(newRow);<
br
>
}<
br
>
<
br
>
if (rowElement != null)<
br
>
{<
br
>
GridViewRowInfo targetRow = rowElement.RowInfo;<
br
>
<
br
>
int insertIndex = this.radGridView2.Rows.IndexOf(targetRow);<
br
>
if (insertIndex > -1)<
br
>
{<
br
>
gridViewDataTable.Rows.InsertAt(newRow, insertIndex);<
br
>
}<
br
>
}<
br
>
<
br
>
<
br
>
this.radListView1.Items.Remove(draggedItem.Data);<
br
>
}</
p
> <
p
><
br
></
p
> <
p
>private void fillTheDataGrid()<
br
>
{<
br
>
var commandServer = new CommandServer();<
br
>
try<
br
>
{<
br
>
radGridView2.Invoke(new MethodInvoker(delegate ()<
br
>
{<
br
>
_bindingSource = new BindingSource { DataSource = commandServer.GetDataGridSet(@"select key_socRabotnik, fio as [ФИО]<
br
>
from socRabotnik<
br
>
where statusDel = 0<
br
>
order by fio").Tables[0] };<
br
>
radGridView2.DataSource = _bindingSource;<
br
>
<
br
>
if (radGridView2.Columns.Count > 0)<
br
>
{<
br
>
radGridView2.Columns[0].IsVisible = false;<
br
>
radGridView2.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;<
br
>
}<
br
>
<
br
>
_bindingSource = new BindingSource { DataSource = commandServer.GetDataGridSet(@"select key_socRabotnik, fio as [ФИО]<
br
>
from socRabotnik left join spec_soc on key_socRabotnik = fk_socRabotnik<
br
>
where fk_socRabotnik is null").Tables[0] };<
br
>
radListView1.DataSource = _bindingSource;<
br
>
radListView1.DisplayMember = "[ФИО]";<
br
>
radListView1.ValueMember = "[ФИО]";<
br
>
radListView1.Columns[0].Visible = false;<
br
>
}));<
br
>
}<
br
>
catch (Exception ex)<
br
>
{<
br
>
CommandClient commandClient = new CommandClient();<
br
>
commandClient.WriteFileError(ex, null);<
br
>
}<
br
>
}</
p
>
ListView to GridView: It is dragged, deleted, but not in the grid.
GridView to ListView: error image