private void UpdateList() { Items = new ObservableCollection <AddedTests>(); try { Message mess = new Message(); mess.Add("", mt); response = JsonConvert.DeserializeObject <Message>(server.SendMsg("GetTests", Data.ServiceSel, JsonConvert.SerializeObject(mess))); for (var i = 0; i < response.args.Count; i += 5) { AddedTests test = new AddedTests(); test.ID = response.args[i]; test.Name = response.args[i + 1]; test.Author = response.args[i + 2]; Message message = new Message(); message.Add("", "", response.args[i]); string request = JsonConvert.SerializeObject(message); test.Kp = response.args[i + 4]; test.Sort = response.args[i + 3]; Items.Add(test); } } catch { MessageBox.Show("Произошла ошибка! Обратитесь к поддержке!"); } }
private void TestList_MouseMove(object sender, MouseEventArgs e) { if (flag == 1) { return; } // Get the current mouse position Point mousePos = e.GetPosition(null); Vector diff = startPoint - mousePos; if (e.LeftButton == MouseButtonState.Pressed && (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance || Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance)) { // Get the dragged ListViewItem ListView listView = sender as ListView; ListViewItem listViewItem = FindAnchestor <ListViewItem>((DependencyObject)e.OriginalSource); if (listViewItem == null) { return; // Abort } // Find the data behind the ListViewItem AddedTests item = (AddedTests)listView.ItemContainerGenerator.ItemFromContainer(listViewItem); if (item == null) { return; // Abort } // Initialize the drag & drop operation startIndex = List.SelectedIndex; DataObject dragData = new DataObject("tests", item); DragDrop.DoDragDrop(listViewItem, dragData, DragDropEffects.Copy | DragDropEffects.Move); } }
private void TestList_Drop(object sender, DragEventArgs e) { int index = -1; if (e.Data.GetDataPresent("tests") && sender == e.Source) { // Get the drop ListViewItem destination ListView listView = sender as ListView; ListViewItem listViewItem = FindAnchestor <ListViewItem>((DependencyObject)e.OriginalSource); if (listViewItem == null) { // Abort e.Effects = DragDropEffects.None; return; } // Find the data behind the ListViewItem AddedTests item = (AddedTests)listView.ItemContainerGenerator.ItemFromContainer(listViewItem); // Move item into observable collection // (this will be automatically reflected to TestList.ItemsSource) e.Effects = DragDropEffects.Move; index = Items.IndexOf(item); if (startIndex >= 0 && index >= 0) { Items.Move(startIndex, index); } Message ids = new Message(); ids.Add(mt); for (int i = 0; i < Items.Count; i++) { ids.Add(Items.ElementAt <AddedTests>(i).ID); } String request = JsonConvert.SerializeObject(ids); server.SendMsg("ChangePositionTests", Data.ServiceSel, request); startIndex = -1; } }