C
C#10mo ago
JakenVeina

❔ 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?
3 Replies
rodrigovaz
rodrigovaz10mo ago
I don't think so, IMO the "worst" is the restriction on no ledgers at same level as a sub-category because that creates a problem: What if I created N ledgers and decided that it would be best to separate in 2 sub categories, what do I do with the N ledgers? Do I move tem by hand to another category just to create the subcategories? Do I delete them to then recreate them by hand? Maybe have a specific flow to create a sub category and include all child nodes to it automatically?
JakenVeina
JakenVeina10mo ago
hmmmmm that's a good point yeah, you'd basically have to create a new category somewhere else, probably the root move all the ledgers to it then move it into position ugh I need to just support mixing lists, don't I god, that's gonna be a pain in the ass
Accord
Accord10mo ago
Was this issue resolved? If so, run /close - otherwise I will mark this as stale and this post will be archived until there is new activity.
Want results from more Discord servers?
Add your server
More Posts
✅ AuthorizationHandlerContext in ASP.NET API with Auth0Hello 😅 I am trying to implement Auth0 in my ASP.NET API consumed by Angular app. It is a personal❔ Web things :)hi, i have small web app (pet. proj.) which should be smthing like shop,where u can add your product✅ Drawing WPF image from byte arrayIs there any way in wpf to render an image directly from a byte array? eg accessing DirectX? i want ❔ My Hangman Game is not drawing the hangman based off how many wrong you haveI basically finished my code minus the fact that if I get a wrong letter it only draws the first par❔ EFCore migrations from existent databasei have working EFcore msyql setup but i want start keep migrations tracking from now. How create mig❔ How to set progress bar in taskbar in winform?Ive tried using TaskbarManager but VS says TaskbarManager does not contain a definition for 'instanc❔ ✅ While loop takes input but gives out output + two phantom outputsworking on a simple rock, paper, scissor game. After a few tries with if statements, I changed to sw❔ Is it efficient and worth doing?[newb alert. Please explain everything so that newb a.k.a. me understand lol] Is it efficent I to wr❔ Constructing big endian byte message from multiple integersHey all, I'm following the torrent protocol trying to create messages for the protocol to give track✅ Want to do some Gamedev, don't know what app to useSo, I know there's Unity, but, is there any other good game-Dev (apps?) that I can use C# in?