Table of contents
Open Table of contents
Въведение
Цел на упражнението
Запознаване с WPF, неговите възможности за потребителски интерфейс и връзката му с база данни чрез Data Binding.
Задачите в упражнението изграждат:
- Малка студентска информационна система
В това упражнение:
- Десктоп приложение, което работи с база данни
- Създаване на DataGrid за визуализиране на потребители
- Работа с Bindings и XAML
Очакван резултат
Ще създадем интерфейс, който визуализира списъка с потребителите, създадени в предишните упражнения.
Задачи за домашна работа
- Добавяне на опция за скриване на паролата чрез Binding Converter.
- Добавяне на нов прозорец, който визуализира Logger-а.
- Промяна на Logger-a, така че в списъка да се вижда само датата на събитието, а при двоен клик да се отваря детайлно съобщение.
Важни концепции
- WPF (Windows Presentation Foundation)
- XAML
- Data Binding
- MAUI (Multi-platform App UI)
Зареждане на проект в Visual Studio
- Отворете Visual Studio.
- Заредете Solution-а от предишните упражнения.
- Създайте нов проект с име
UI.
- Типът на проекта трябва да бъде WPF App (C#).
- Добавете референция към
DataLayer:
- Десен бутон върху Dependencies на
UI→Add Project Reference… - Изберете
DataLayer.
Разширяване на проекта UI
Създаване на папки
- В
Solution Explorer→ десен бутон върхуUI→Add→New Folder. - Създайте следните папки:
WindowsExtrasComponents
Подреждане на съществуващ код
- Преместете
MainWindow.xamlвWindows. - Отворете
App.xamlи коригирайтеStartupUri:
<Application x:Class="UI.App" StartupUri="Windows/MainWindow.xaml">
Създаване на StudentsList.xaml (Компонент)
- Десен бутон върху
Components→Add→New Item…→UserControl (WPF)→StudentsList.xaml. - Добавете DataGrid с Binding:
<DataGrid Name="students" ItemsSource="{Binding}" AutoGenerateColumns="True" />
Промяна на StudentsList.xaml.cs
- Отворете
StudentsList.xaml.csи добавете следния код:
using System.Linq;
using System.Windows.Controls;
public partial class StudentsList : UserControl
{
public StudentsList()
{
InitializeComponent();
using (var db = new DatabaseContext())
{
students.DataContext = db.Users.ToList();
}
}
}
Връзка на StudentsList с MainWindow.xaml
- Отворете
MainWindow.xamlи добаветеStudentsListв Grid:
<local2:StudentsList x:Name="studentsList" Padding="2" />
- Добавете WindowStartupLocation за центриране на прозореца:
<Window Title="List of all students" WindowStartupLocation="CenterScreen">
Настройка на визуализацията на таблицата
- Отворете
StudentsList.xamlи променете DataGrid:
<DataGrid AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Username" Binding="{Binding Username}" IsReadOnly="True" />
<DataGridTextColumn Header="Role" Binding="{Binding Role}" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
Въведение в .NET MAUI
.NET MAUI (Multi-platform App UI) е кросплатформена технология за създаване на приложения за Windows, macOS, iOS и Android.
Разлика между WPF и MAUI
| Функция | WPF | MAUI |
|---|---|---|
| Поддържани платформи | Само Windows | Windows, macOS, iOS, Android |
| Език | C# + XAML | C# + XAML |
| Технология | Само за десктоп | Кросплатформено |
| UI Рендериране | DirectX | Native UI |
| Data Binding | Поддържа MVVM | Поддържа MVVM |
Кога да използваме MAUI?
- Когато искаме едно приложение за всички платформи.
- Когато използваме модерна технология с поддръжка от Microsoft.
- Когато искаме лесно интегриране на мобилни и уеб технологии.
Инсталиране на .NET MAUI
- Инсталирайте .NET SDK 7+.
- В Visual Studio активирайте MAUI Workload от
Tools > Get Tools and Features.
Заключение
След изпълнението на тези стъпки ще имаме WPF приложение, което работи с база данни и визуализира потребителите, като допълнително разгледахме .NET MAUI като съвременен заместител.
Бележка: В следващи упражнения ще разширим функционалността с по-сложни UI елементи и навигация.