How should I structure a beginner WPF Bicycle (class) app with multiple windows and MySQL integration?

14 hours ago 1
ARTICLE AD BOX

I am currently learning WPF (C#) and trying to build a small Bicycle Management application for practice. I understand the basics individually (WPF controls, simple classes, MySQL connections, etc.), but I am struggling to understand how these pieces should be connected together in a clean beginner-friendly structure.

The application currently has these requirements:

3 separate Windows Grid-based layouts Navigation between windows using Button clicks Displaying bicycle images with an Image control A Bicycle class with properties such as Brand, Type, Price and Color Creating Bicycle objects from user input Temporarily storing them in a List or ObservableCollection Connecting to a MySQL database Inserting bicycle records into the database Querying bicycles and displaying them in a DataGrid

For example, I currently have a simple model class like this:

public class Bicycle { public int Id { get; set; } public string Brand { get; set; } public string Type { get; set; } public int Price { get; set; } public string Color { get; set; } }

Navigation between windows is currently handled from button click events:

private void OpenListWindow(object sender, RoutedEventArgs e) { BicycleListWindow window = new BicycleListWindow(); window.Show(); }

I also already have a working MySQL connection and basic INSERT / SELECT queries, but I am unsure where this logic should ideally be placed in a beginner WPF application.
My main problem is understanding the overall structure of the application and how these concepts are usually connected together.
Some specific things I am unsure about:

Is Code-Behind acceptable for window navigation in a beginner project? Where should the MySQL logic be placed? Is using a static List temporarily acceptable? Should I already try to follow MVVM, or is Code-Behind fine while learning? What would a minimal but reasonably clean structure look like for this type of application?

I am not looking for a production-level enterprise architecture yet. I mainly want to understand how a simple WPF application with multiple windows and database CRUD operations should be organized while learning.

Read Entire Article