CI / build-and-test (push) Canceled after 0s
CalendarDatePicker.SelectedDate ist (WPF-Toolkit-Ursprung) DateTime?, nicht DateTimeOffset? wie beim eingebauten DatePicker - Avalonia bietet dafuer keine automatische Konvertierung. Ohne Converter blieb das Feld leer und ein Klick auf einen Kalendertag warf eine InvalidCastException. Betraf auch die schon bestehenden Bindings in WithdrawStudentDialog und CreateLetterDialog, nur bislang unbemerkt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
58 lines
3.6 KiB
XML
58 lines
3.6 KiB
XML
<Window xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:vm="clr-namespace:LehrerApp.Desktop.ViewModels.Planning"
|
|
xmlns:svc="clr-namespace:LehrerApp.Desktop.Services"
|
|
xmlns:conv="clr-namespace:LehrerApp.Desktop.Converters"
|
|
x:Class="LehrerApp.Desktop.Views.Planning.WebUntisTimetableImportDialog"
|
|
x:DataType="vm:WebUntisTimetableImportViewModel"
|
|
Title="Stundenplan aus WebUntis" Width="820" Height="650"
|
|
MinWidth="680" MinHeight="480" WindowStartupLocation="CenterOwner">
|
|
<Grid RowDefinitions="Auto,Auto,*,Auto" Margin="24" RowSpacing="14">
|
|
<StackPanel Grid.Row="0" Spacing="4">
|
|
<TextBlock Text="Stundenplan aus WebUntis" Classes="dialogtitle"/>
|
|
<TextBlock Text="Wähle eine typische Unterrichtswoche. Vorhandene Einträge werden vorgeschlagen und erst nach Bestätigung ersetzt."
|
|
FontSize="12" Opacity="0.65" TextWrapping="Wrap"/>
|
|
</StackPanel>
|
|
<Grid Grid.Row="1" ColumnDefinitions="2*,*,Auto" ColumnSpacing="10">
|
|
<ComboBox Grid.Column="0" ItemsSource="{Binding Teachers}" SelectedItem="{Binding SelectedTeacher}">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate x:DataType="svc:UntisTeacherDto"><TextBlock Text="{Binding DisplayName}"/></DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
<CalendarDatePicker Grid.Column="1" SelectedDate="{Binding WeekDate, Converter={x:Static conv:DateTimeOffsetToDateTimeConverter.Instance}}"/>
|
|
<Button Grid.Column="2" Content="Woche laden" Command="{Binding LoadCommand}" IsEnabled="{Binding !Busy}"/>
|
|
</Grid>
|
|
<ScrollViewer Grid.Row="2">
|
|
<ItemsControl ItemsSource="{Binding Rows}">
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate x:DataType="vm:WebUntisTimetableRow">
|
|
<Grid ColumnDefinitions="48,85,2*,2*,Auto" ColumnSpacing="8" Margin="0,3">
|
|
<TextBlock Grid.Column="0" Text="{Binding WeekdayLabel}" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<StackPanel Grid.Column="1">
|
|
<TextBlock Text="{Binding PeriodNumber, StringFormat={}{0}. Std.}" FontSize="12"/>
|
|
<TextBlock Text="{Binding TimeLabel}" FontSize="10" Opacity="0.6"/>
|
|
</StackPanel>
|
|
<TextBlock Grid.Column="2" Text="{Binding UntisLabel}" TextWrapping="Wrap" VerticalAlignment="Center"/>
|
|
<ComboBox Grid.Column="3" ItemsSource="{Binding GroupOptions}" SelectedItem="{Binding SelectedGroup}"
|
|
PlaceholderText="nicht übernehmen">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate x:DataType="vm:WebUntisGroupOption"><TextBlock Text="{Binding DisplayName}"/></DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
<Button Grid.Column="4" Content="Neue Gruppe…" FontSize="11"
|
|
Command="{Binding $parent[ItemsControl].((vm:WebUntisTimetableImportViewModel)DataContext).CreateGroupCommand}"
|
|
CommandParameter="{Binding}"/>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</ScrollViewer>
|
|
<Grid Grid.Row="3" ColumnDefinitions="*,Auto,Auto" ColumnSpacing="8">
|
|
<TextBlock Grid.Column="0" Text="{Binding Status}" FontSize="12" TextWrapping="Wrap" VerticalAlignment="Center"/>
|
|
<Button Grid.Column="1" Content="Abbrechen" Click="OnCancel"/>
|
|
<Button Grid.Column="2" Content="Zuordnung übernehmen" Command="{Binding SaveCommand}" Click="OnSave"
|
|
IsEnabled="{Binding !Busy}"/>
|
|
</Grid>
|
|
</Grid>
|
|
</Window>
|