Skip to content

[Bug]: Seven report grids let the user type into cells that discard the edit #2105

Description

@laurentiu021

Problem

Report grids are meant to be read-only, and 20 of the app's DataGrids say so on the grid element. Eleven do not, and in seven of them a text cell enters edit mode when the user double-clicks it. Typing there changes the in-memory row and nothing else, so the app appears to accept an edit it silently discards.

Measured per grid, counting only text columns inside a grid that has no grid-level IsReadOnly:

View Typeable text columns Columns that carry a consequence
AppUpdatesView.xaml 6 of 6 Id — the argument WingetService.UpgradeAsync builds winget upgrade --id "…" from
WindowsUpdateView.xaml 10 of 11 Size, Status, Date
EnvironmentVariablesView.xaml 2 of 4 Value — possibly intended, see below
ShortcutCleanerView.xaml 3 of 6
UninstallerView.xaml 2 of 5
ContextMenuView.xaml 2 of 4
StartupView.xaml 1 of 2

Four more grids lack IsReadOnly but hold only checkbox/template columns, where interaction is the point: AppBlockerView, BrowserCleanerView, DebloaterView, DnsHostsView.

What is NOT wrong here

An edited package Id cannot reach a command line. WingetService.UpgradeAsync calls WingetId.IsValid(packageId) and throws ArgumentException before interpolating, and AppUpdatesViewModel's upgrade loop catches it per row and keeps going with a friendly status. So the consequence of retyping an Id is a row that reports an error instead of upgrading — a confusing outcome, not an injection and not a crash.

Expected behavior

Report grids carry IsReadOnly="True" on the DataGrid, matching the 20 that already do. That is one attribute per view and removes the whole class rather than the instances.

Two need a decision rather than a blanket fix:

  • EnvironmentVariablesView — is inline editing of a variable's Value the intended way to edit one, or does the tab have its own edit path? If inline editing is intended, the column should be the only editable one and should commit somewhere.
  • the four checkbox/template grids — no change needed, but worth a comment saying the omission is deliberate so a future sweep does not "fix" them.

Evidence

Counts derived by scoping each <DataGrid …> opening tag to its closing tag and counting DataGridTextColumn elements without IsReadOnly inside it, across all 31 views that contain text columns.

Affected tabs

App Updates, Windows Update, Environment Variables, Shortcut Cleaner, Uninstaller, Context Menu, Startup

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinguxVisual or interaction improvement

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions