JakenVeina
JakenVeina
CC#
Created by JakenVeina on 9/24/2023 in #help
❔ WPF Usability/Design Opinions
So, I think what I want is the following chunk of UI:
- Assets
[Checking 1234]
[Checking 5678]
[Savings 9012]
+ Liabilities
+ Income
- Expenses
- Living
[Mortgage]
[Property Tax]
- Utilities
[Electricity]
[Water/Sewer]
[Trash]
- Assets
[Checking 1234]
[Checking 5678]
[Savings 9012]
+ Liabilities
+ Income
- Expenses
- Living
[Mortgage]
[Property Tax]
- Utilities
[Electricity]
[Water/Sewer]
[Trash]
Here we have a set of accounting ledgers, displayed within a tree of categories. My intention at the moment is to have the following intraction elements in UI, and I can't decide if this is overly-complicated or not:
1) The empty space in the UI has a "Create Category" option, I.E. Ledgers cannot exist outside of a category. The root items are all categories.
2) Each category has "Edit", "Create Sub-Category" and "Create Ledger"
2.1) Each category can contain either sub-categories, or ledgers, but not both. Once a category contains one of these, the option to create the opposite gets disabled.
3) Ledgers do not have any children. They only have an "Edit" option
4) Ledgers and Categories can all be drag-and-drop moved around (for valid movements). For categories, this moves the whole tree branch.
1) The empty space in the UI has a "Create Category" option, I.E. Ledgers cannot exist outside of a category. The root items are all categories.
2) Each category has "Edit", "Create Sub-Category" and "Create Ledger"
2.1) Each category can contain either sub-categories, or ledgers, but not both. Once a category contains one of these, the option to create the opposite gets disabled.
3) Ledgers do not have any children. They only have an "Edit" option
4) Ledgers and Categories can all be drag-and-drop moved around (for valid movements). For categories, this moves the whole tree branch.
For context, a Ledger here is simply something that transactions can target, wherein a transaction indicates money being transfered from a source ledger to a destination ledger. That allows balances to be rolled up per-ledger, or by category. Currently, my models are...
public record CategoryVersionEntity
{
public required ulong Id { get; init; }
public required ulong CategoryId { get; init; }
public required ulong CreationId { get; init; }
public ulong? PreviousVersionId { get; init; }
public required ulong? ParentCategoryId { get; init; }
public required string? Description { get; init; }
public required string Name { get; init; }
}

public record LedgerVersionEntity
{
public required ulong Id { get; init; }
public required ulong LedgerId { get; init; }
public required ulong CategoryId { get; init; }
public required ulong CreationId { get; init; }
public ulong? PreviousVersionId { get; init; }
public required string? Description { get; init; }
public required string Name { get; init; }
}
public record CategoryVersionEntity
{
public required ulong Id { get; init; }
public required ulong CategoryId { get; init; }
public required ulong CreationId { get; init; }
public ulong? PreviousVersionId { get; init; }
public required ulong? ParentCategoryId { get; init; }
public required string? Description { get; init; }
public required string Name { get; init; }
}

public record LedgerVersionEntity
{
public required ulong Id { get; init; }
public required ulong LedgerId { get; init; }
public required ulong CategoryId { get; init; }
public required ulong CreationId { get; init; }
public ulong? PreviousVersionId { get; init; }
public required string? Description { get; init; }
public required string Name { get; init; }
}
TL;DR does the above UI/UX sound over-complicated or unintuitive?
12 replies
CC#
Created by JakenVeina on 5/4/2023 in #help
❔ WPF Dynamic DataGrid
52 replies