x:Reference-Binding (RotationPage): ein UI-Element bindet direkt an ein anderesIntToBooleanConverter, IntToColorConverterStringFormat: formatierte Textbindung ohne Converter[ObservableProperty] / [RelayCommand] (ConverterPage)x:DataType): typsichere Bindungen zur Compile-ZeitKein ViewModel: ein Control bindet direkt an ein anderes über x:Reference.
ViewModel-Binding via x:DataType; Converter transformieren den Wert.
Minimaler ViewModel-Schnitt: State + Command — ohne Repository-Schicht.
| Aspekt | RotationPage | ConverterPage |
|---|---|---|
| Binding-Quelle | x:Reference (Element) |
ViewModel (x:DataType) |
| CanExecute-Logik | — | Converter im XAML |
| Testbar | Nein | Ja (ViewModel-Tests) |
| Typprüfung | Nein | Compile-Zeit |
Die folgenden Instruction-Dateien haben das Ergebnis beeinflusst:
.github/copilot-instructions.md — allgemeine Workspace-Regeln (kleinster Scope, Commits pro Datei, Verifikation vor Abschluss).github/instructions/artifacts.instructions.md — Klassifikation, Buildverifikation.github/instructions/artifacts-consumers-education.instructions.md — Enterprise-Muster-Tabelle: Navigation/Data Binding → MVVM ja, Core+Interfaces nein, Tests ja, Architekturschichten neinErstelle ein agent-generated example für Advanced Data Binding (MAUI, fortgeschrittene
Studierende).
Feature-Scope: bestehendes Beispiel mit x:Reference (RotationPage) + Converters (ConverterPage).
Struktur: bestehendes Single-Project erweitern um AdvancedDataBinding.ViewModels (net9.0
classlib, CommunityToolkit.Mvvm 8.4.2) und AdvancedDataBinding.Tests (xUnit net9.0).
MVVM mit CommunityToolkit.Mvvm auf ConverterPage; RotationPage bleibt als x:Reference-Beispiel.
x:DataType für Compiled Bindings auf ConverterPage.
xUnit-Tests gegen ViewModels (Text leer, Send löscht Text, PropertyChanged).
Lies zuerst die Instructions, ermittle den Foliensatz (AdvancedDataBinding.qmd),
dokumentiere Instructions + Prompt dort, vergleiche mit manuellem Beispiel,
verifiziere Android-Build (net9.0-android).
Neue Dateien/Projekte:
AdvancedDataBinding.ViewModels/ConverterViewModel.cs — [ObservableProperty] Text, [RelayCommand] Send()AdvancedDataBinding.Tests/ConverterViewModelTests.cs — 3 Tests (leer, Send, PropertyChanged)ConverterPage.xaml — x:DataType, ViewModel-Binding statt x:ReferenceConverterPage.xaml.cs — DI-Konstruktor (ConverterViewModel vm)AppShell.xaml.cs — DI (ConverterPage converterPage), converterShellContent.Content = converterPageMauiProgram.cs — registriert ConverterViewModel, ConverterPage, AppShell, AppBuild: 0 Fehler · Tests: 3/3 ✓ · Android net9.0-android: erfolgreich
| Kriterium | Manuell | Agent-generated |
|---|---|---|
| Korrektheit | ✓ | ✓ |
| MVVM | ✗ (kein ViewModel) | ✓ (CommunityToolkit.Mvvm) |
| Compiled Bindings | ✗ | ✓ (x:DataType) |
| Unit Tests | ✗ | ✓ (3 Tests) |
| DI-Verdrahtung | ✗ | ✓ (MauiProgram) |
| x:Reference-Didaktik | ✓ | ✓ (erhalten) |
| Erklärbarkeit | einfach | fortgeschritten |
Empfehlung: Das agent-generated Beispiel ersetzt das manuelle Beispiel für fortgeschrittene Studierende. Es zeigt MVVM, Compiled Bindings und Unit Tests — und erhält dabei die didaktisch wertvolle x:Reference-Seite (RotationPage) unverändert.