Fix runtime crash in CategoryManagementView type resolution
Details
The compiled binding cast syntax ((vm:CategoryManagementViewModel)DataContext)
in DataTemplate contexts caused a runtime ArgumentException because the XAML
type resolver could not find the VM type in the plugin assembly's search path.
Replaced with RelativeSource FindAncestor bindings which avoid the runtime type
cast entirely and resolve the parent DataContext via the visual tree instead.
Finance v3.2.1.
Fix CS1998 warning in Tasks quick action save handler
Details
Removed unnecessary async from OnQuickTaskSave — the method contains no
await calls, so async void was generating a compiler warning. The method
is a synchronous event handler that creates and updates tasks via the
service directly. Tasks v1.18.5.
Fix all build warnings across Data, Files, Habits, and Finance plugins
Details
CS0108: Dispose() methods in Data and Files ViewModels now properly override
Dispose(bool) instead of hiding the base ViewModelBase.Dispose().
CS8670/CS8602: PathFigure.Segments and PathGeometry.Figures in Habits controls
now use explicit collection constructors instead of implicit null dereference.
CS1998: Removed async keyword from synchronous methods in HabitsViewModel,
HabitsPlugin.Intents, and Finance.TestRunner, using Task.FromResult/
Task.CompletedTask where needed.
Data v1.20.4, Files v1.10.4, Habits v1.2.1.
Fix Finance plugin UI rendering and runtime crashes (v3.2.0)
Details
Fixed critical runtime crash on Reconcile tab where CalendarDatePicker
bound to DateOnly instead of DateTimeOffset, causing InvalidCastException.
Fixed Reports tab where all four report panels were invisible due to
ObjectConverters.Equal comparing boxed int to string ConverterParameter.
Replaced with boolean properties for reliable visibility toggling.
Added account type selector (Checking, Savings, CreditCard, Cash, Asset,
Liability) to the Accounts creation form — previously all accounts
silently defaulted to Checking. Added auto-creation of default budget,
4 category groups (Essentials, Lifestyle, Savings & Goals, Debt Payments),
and 15 starter categories on first navigation when no budget exists.
Also creates Income and Expense internal accounts for double-entry.
Improved Register tab with column headers (Date, Payee, Amount, Status,
Category), category selector in the add-transaction form, and actual
category name resolution instead of truncated GUIDs. Added empty state
messages across all tabs guiding users on what to do when no data exists.
Fixed Summary tab using raw SystemAccentColor instead of proper brush
resource, and replaced hardcoded white foreground with theme-aware
DynamicResource for dark mode compatibility.
Get notified about new releases