From 1b6b446915a3dbe7e3240ab1ba2afa48ceca58cd Mon Sep 17 00:00:00 2001 From: Kazeem Quadri Date: Mon, 5 Jan 2026 01:30:02 +0000 Subject: [PATCH] Add Drag and Drop For Environment Variables (#40105) ## Summary of the Pull Request This PR introduces drag-and-drop functionality for environment variables, allowing users to easily update the order of variables based on their preferences. Users can now rearrange variables directly in the UI by dragging and dropping, making it more intuitive and efficient to customise the order without manual editing. ## PR Checklist - [X] **Closes:** #33554 33554 - [X] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx ## Detailed Description of the Pull Request / Additional comments Updated `EnvironmentVariablesMainPage.xaml` to use a `ListView` instead of an `ItemsControl`, enabling item dragging and reordering. The new `ListView` features a grid layout with a `FontIcon`, `TextBox`, and `Button`, while maintaining visibility control through data binding. Added `EditVariableValuesList_DragItemsCompleted` method in `EnvironmentVariablesMainPage.xaml.cs` to update the text box with the new order of items after drag-and-drop operations, ensuring consistency with the underlying data model. ## Validation Steps Performed - Manually tested the affected functionality. - Change was minimal and did not impact existing automated tests. - Verified that the new/modified feature works as expected and did not cause regressions in related areas. --------- Co-authored-by: Leilei Zhang --- .../EnvironmentVariablesMainPage.xaml | 22 ++++++++++++---- .../EnvironmentVariablesMainPage.xaml.cs | 25 ++++++++++++++----- 2 files changed, 36 insertions(+), 11 deletions(-) diff --git a/src/modules/EnvironmentVariables/EnvironmentVariablesUILib/EnvironmentVariablesMainPage.xaml b/src/modules/EnvironmentVariables/EnvironmentVariablesUILib/EnvironmentVariablesMainPage.xaml index f2628cf375..baa2447cd1 100644 --- a/src/modules/EnvironmentVariables/EnvironmentVariablesUILib/EnvironmentVariablesMainPage.xaml +++ b/src/modules/EnvironmentVariables/EnvironmentVariablesUILib/EnvironmentVariablesMainPage.xaml @@ -466,27 +466,39 @@ TextChanged="EditVariableDialogValueTxtBox_TextChanged" TextWrapping="Wrap" /> - - + + +