Zentrale Exception-Behandlung (Dispatcher.UIThread.UnhandledException, AppDomain, TaskScheduler) verhindert Abstürze und protokolliert Fehler über AppLogger in eine rotierende Log-Datei im App-Datenverzeichnis. Toast-Benachrichtigungen zeigen Erfolg/Fehler global an. Alle Dialoge mit Formularfeldern zeigen Validierungsmeldungen jetzt direkt am betroffenen Feld statt in einem Sammel-Label. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
54 lines
2.8 KiB
XML
54 lines
2.8 KiB
XML
<Window xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:vm="clr-namespace:LehrerApp.Desktop.ViewModels.Groups"
|
|
x:Class="LehrerApp.Desktop.Views.Groups.CollectiveGradeDialog"
|
|
x:DataType="vm:CollectiveGradeDialogViewModel"
|
|
Title="Sammelnote erfassen"
|
|
Width="480" Height="640" MinWidth="400" MinHeight="360"
|
|
CanResize="True" WindowStartupLocation="CenterOwner">
|
|
|
|
<Grid RowDefinitions="Auto,Auto,*,Auto" Margin="24">
|
|
|
|
<TextBlock Grid.Row="0" Text="Sammelnote erfassen" FontSize="18" FontWeight="SemiBold"/>
|
|
|
|
<StackPanel Grid.Row="1" Spacing="6" Margin="0,12,0,10">
|
|
<Grid ColumnDefinitions="120,*,90" ColumnSpacing="6">
|
|
<ComboBox Grid.Column="0" ItemsSource="{x:Static vm:GradeCategoryDisplay.Options}"
|
|
SelectedItem="{Binding CategoryName}"/>
|
|
<StackPanel Grid.Column="1" Spacing="2">
|
|
<TextBox Text="{Binding DateText}" PlaceholderText="TT.MM.JJJJ"/>
|
|
<TextBlock Text="{Binding DateTextError}" Foreground="Red" FontSize="11"
|
|
IsVisible="{Binding DateTextError, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
|
</StackPanel>
|
|
<NumericUpDown Grid.Column="2" Value="{Binding Weight}" Minimum="0" Maximum="10"
|
|
Increment="0.1" FormatString="0.#" ShowButtonSpinner="False"
|
|
ToolTip.Tip="Gewichtung"/>
|
|
</Grid>
|
|
<TextBox Text="{Binding Note}" PlaceholderText="Notiz (z.B. Hausaufgabenkontrolle)"/>
|
|
<TextBlock Text="Werte pro Schüler unten eintragen. Leere Felder werden nicht gespeichert."
|
|
FontSize="11" Opacity="0.5" TextWrapping="Wrap"/>
|
|
</StackPanel>
|
|
|
|
<ScrollViewer Grid.Row="2">
|
|
<ItemsControl ItemsSource="{Binding Rows}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate x:DataType="vm:CollectiveGradeStudentRow">
|
|
<Grid ColumnDefinitions="*,100" Margin="0,3">
|
|
<TextBlock Grid.Column="0" Text="{Binding Name}" VerticalAlignment="Center" FontSize="13"/>
|
|
<TextBox Grid.Column="1" Text="{Binding Value}" PlaceholderText="Wert"/>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</ScrollViewer>
|
|
|
|
<Grid Grid.Row="3" ColumnDefinitions="*,Auto,Auto" Margin="0,16,0,0">
|
|
<TextBlock Grid.Column="0" Text="{Binding StatusMessage}" Foreground="Green" FontSize="12"
|
|
VerticalAlignment="Center"
|
|
IsVisible="{Binding StatusMessage, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>
|
|
<Button Grid.Column="1" Content="Speichern" Command="{Binding SaveAllCommand}" Margin="0,0,8,0"/>
|
|
<Button Grid.Column="2" Content="Fertig" Click="OnClose"/>
|
|
</Grid>
|
|
</Grid>
|
|
</Window>
|