Files
LehrerApp/LehrerApp.Desktop/Views/Students/StudentDetailView.axaml
T

169 lines
8.6 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:LehrerApp.Desktop.ViewModels.Students"
x:Class="LehrerApp.Desktop.Views.Students.StudentDetailView"
x:DataType="vm:StudentDetailViewModel">
<Grid RowDefinitions="Auto,*">
<!-- Header -->
<Border Grid.Row="0" Padding="20,16"
BorderBrush="{DynamicResource SystemControlForegroundBaseLowBrush}"
BorderThickness="0,0,0,1">
<Grid ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0" IsVisible="{Binding !IsEditing}">
<TextBlock Text="{Binding StudentTitle}" FontSize="22" FontWeight="SemiBold"/>
</StackPanel>
<StackPanel Grid.Column="0" Spacing="6" IsVisible="{Binding IsEditing}">
<Grid ColumnDefinitions="*,8,*">
<TextBox Grid.Column="0" Text="{Binding EditFirstName}" PlaceholderText="Vorname"/>
<TextBox Grid.Column="2" Text="{Binding EditLastName}" PlaceholderText="Nachname"/>
</Grid>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal" Spacing="8" VerticalAlignment="Top">
<Button Content="Bearbeiten" Command="{Binding StartEditCommand}"
IsVisible="{Binding !IsEditing}"/>
<Button Content="Speichern" Command="{Binding SaveEditCommand}"
IsVisible="{Binding IsEditing}"/>
<Button Content="Abbrechen" Command="{Binding CancelEditCommand}"
IsVisible="{Binding IsEditing}"/>
</StackPanel>
</Grid>
</Border>
<!--
Avalonia 12: TabbedPage für Schüler-Tabs.
Kein manuelles Tab-Management nötig.
-->
<TabbedPage Grid.Row="1" TabPlacement="Top">
<ContentPage Header="Übersicht">
<ScrollViewer Padding="20">
<StackPanel Spacing="12">
<TextBlock Text="Lerngruppen" FontSize="15" FontWeight="SemiBold"/>
<ItemsControl ItemsSource="{Binding Enrollments}">
<ItemsControl.ItemTemplate>
<DataTemplate DataType="vm:EnrollmentEntry">
<Border Background="{DynamicResource SystemControlBackgroundAltHighBrush}"
CornerRadius="6" Padding="12,8" Margin="0,0,0,6">
<Grid ColumnDefinitions="70,*,Auto">
<TextBlock Grid.Column="0" Text="{Binding SchoolYear}" FontWeight="SemiBold"/>
<TextBlock Grid.Column="1" Text="{Binding GroupName}" Margin="8,0"/>
<TextBlock Grid.Column="2" Text="{Binding Subject}" Opacity="0.5" FontSize="12"/>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<TextBlock Text="Keine Einschreibungen vorhanden." Opacity="0.4"
IsVisible="{Binding !Enrollments.Count}"/>
</StackPanel>
</ScrollViewer>
</ContentPage>
<ContentPage Header="Kontakte">
<Grid RowDefinitions="Auto,*" Margin="20">
<Grid Grid.Row="0" ColumnDefinitions="*,Auto,Auto,Auto" Margin="0,0,0,10">
<TextBlock Grid.Column="0" Text="Kontaktdaten" FontSize="15"
FontWeight="SemiBold" VerticalAlignment="Center"/>
<Button Grid.Column="1" Content=" Neu" Command="{Binding AddContactCommand}"
Margin="0,0,8,0"/>
<Button Grid.Column="2" Content="Bearbeiten" Command="{Binding EditContactCommand}"
Margin="0,0,8,0"/>
<Button Grid.Column="3" Content="Adresse anzeigen"
Command="{Binding ViewSelectedAddressCommand}"/>
</Grid>
<ListBox Grid.Row="1" x:Name="ContactList"
ItemsSource="{Binding Contacts}"
SelectedItem="{Binding SelectedContact}"
DoubleTapped="OnContactDoubleTapped">
<ListBox.ItemTemplate>
<DataTemplate x:DataType="vm:ContactItem">
<Border Background="{DynamicResource SystemControlBackgroundAltHighBrush}"
CornerRadius="8" Padding="14,10" Margin="2,3">
<Grid ColumnDefinitions="220,*,Auto" RowDefinitions="Auto,Auto">
<StackPanel Grid.Column="0" Grid.RowSpan="2" Spacing="4">
<TextBlock Text="{Binding Name}" FontWeight="SemiBold" FontSize="14"
TextWrapping="Wrap"/>
<Border Background="{DynamicResource SystemControlForegroundBaseLowBrush}"
CornerRadius="4" Padding="6,2" HorizontalAlignment="Left">
<TextBlock Text="{Binding Relation}" FontSize="11" Opacity="0.7"/>
</Border>
</StackPanel>
<StackPanel Grid.Column="1" Grid.Row="0" Orientation="Horizontal" Spacing="8">
<Button Content="{Binding PhoneDisplay}"
Command="{Binding CallCommand}"
IsVisible="{Binding HasPhone}"
FontSize="12" Padding="8,4"/>
<Button Content="{Binding EmailDisplay}"
Command="{Binding MailCommand}"
IsVisible="{Binding HasEmail}"
FontSize="12" Padding="8,4"/>
</StackPanel>
<TextBlock Grid.Column="1" Grid.Row="1" Text="{Binding Address}"
IsVisible="{Binding HasAddress}" FontSize="12" Opacity="0.65"
TextWrapping="Wrap" Margin="4,4,12,0"/>
<Border Grid.Column="2" Grid.RowSpan="2" CornerRadius="4" Padding="7,3"
VerticalAlignment="Top"
Background="{DynamicResource SystemControlBackgroundAltHighBrush}">
<StackPanel>
<TextBlock Text="{Binding StatusText}" FontSize="11"
IsVisible="{Binding IsInvalid}" Foreground="IndianRed"/>
<TextBlock Text="Aktuell" FontSize="11" Opacity="0.5"
IsVisible="{Binding IsValid}"/>
</StackPanel>
</Border>
</Grid>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<TextBlock Text="Keine Kontakte erfasst." Opacity="0.4"
HorizontalAlignment="Center" VerticalAlignment="Center"
IsVisible="{Binding HasNoContacts}"/>
</Grid>
</ContentPage>
<ContentPage Header="Noten">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="Notenübersicht" FontSize="16" Opacity="0.4" HorizontalAlignment="Center"/>
<TextBlock Text="Wird implementiert." FontSize="12" Opacity="0.3" HorizontalAlignment="Center"/>
</StackPanel>
</ContentPage>
<ContentPage Header="Dokumentation">
<ScrollViewer Padding="20">
<StackPanel>
<ItemsControl ItemsSource="{Binding Documentation}">
<ItemsControl.ItemTemplate>
<DataTemplate DataType="vm:DocEntry">
<Border Background="{DynamicResource SystemControlBackgroundAltHighBrush}"
CornerRadius="6" Padding="12,10" Margin="0,0,0,8">
<Grid ColumnDefinitions="80,*,Auto">
<TextBlock Grid.Column="0" Text="{Binding Date}" Opacity="0.5" FontSize="12"/>
<StackPanel Grid.Column="1" Margin="8,0">
<TextBlock Text="{Binding Title}" FontWeight="SemiBold" FontSize="13"/>
<TextBlock Text="{Binding TypeLabel}" FontSize="11" Opacity="0.5"/>
</StackPanel>
<TextBlock Grid.Column="2" Text="🔒" FontSize="14"
IsVisible="{Binding IsConfidential}"
ToolTip.Tip="Vertraulich"/>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<TextBlock Text="Keine Dokumentation vorhanden." Opacity="0.4"
IsVisible="{Binding !Documentation.Count}"/>
</StackPanel>
</ScrollViewer>
</ContentPage>
</TabbedPage>
</Grid>
</UserControl>