feat: implement board tab with dialogs, virtualized card lists and refresh-after-write

- board: columns in id order, per-column sort via config, column width presets (240/320/480) and custom 160-720
- column header new-card and edit/delete menu; card menu delete and move-to-column
- card editor as one unit of work with dirty check and discard confirmation; nested tag picker writes new tags immediately
- schema constraint violations mapped to typed exceptions and shown inside the modal
- dialog service with owner stack so nested modals center on their parent and get FlowDirection
- repository: filtered GetCards, CountCards; view-model tests
This commit is contained in:
doyaGu committed 2026-10-03 03:33:25 -04:00
1 parent 84d08c6768
commit e3f58ce150
41 files changed
+3004 -26

No files matched your search

@@ -0,0 +1,9 @@
namespace YKanBan.Views.Dialogs;
public partial class MessageDialog : DialogWindow
{
public MessageDialog()
{
InitializeComponent();
}
}