Files
BeWoPlaner/BeWo/Scheduling/View/AppointmentEditView.xaml
2025-04-08 10:22:22 +02:00

1237 lines
60 KiB
XML

<dx:DXWindow
x:Class="BeWo.Scheduling.View.AppointmentEditView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converter="clr-namespace:BeWo.Converter"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:local="clr-namespace:BeWo.Scheduling.View"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:schedulingConverter="clr-namespace:BeWo.Scheduling.Converter"
xmlns:search="clr-namespace:BeWo.View.Search"
Width="550"
Height="Auto"
Margin="0"
Padding="0"
dx:ThemeManager.ThemeName="Office2010Black"
Loaded="Window_Loaded"
ResizeMode="NoResize"
SizeToContent="Height"
mc:Ignorable="d">
<Window.Resources>
<converter:BoolReverseConverter x:Key="BoolReverseConverter" />
<converter:BoolVisibilityConverter x:Key="BoolVisibilityConverter" />
<converter:StringBrushConverter x:Key="StringBrushConverter" />
<schedulingConverter:SchedulingBackgroundConverter x:Key="SchedulingBackgroundConverter" />
<schedulingConverter:SchedulingParticipationBrushConverter x:Key="SchedulingParticipationBrushConverter" />
<schedulingConverter:SchedulingTextFromIDataContractConverter x:Key="SchedulingTextFromIDataContractConverter" />
<schedulingConverter:SchedulingInformationVisibilityConverter x:Key="SchedulingInformationVisibilityConverter" />
<schedulingConverter:SchedulingRemoveElementVisibilityConverter x:Key="SchedulingRemoveElementVisibilityConverter" />
<Style x:Key="MultiSupportConceptSelectionControlStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="2,2,2,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border
x:Name="ItemBorder"
MinHeight="25"
Background="#FF000000"
CornerRadius="5">
<Border.OpacityMask>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#26000000" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border
x:Name="ItemContent"
MinHeight="25"
Background="{StaticResource SupportConceptContentBrush}"
CornerRadius="5">
<Grid
Margin="5,3,5,3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
OpacityMask="{x:Null}"
SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock
x:Name="txtDetail1"
Grid.Row="0"
Grid.Column="0"
FontFamily="Microsoft Sans Serif"
FontSize="12"
Foreground="#FFD2D2D2"
Text="{Binding Path=CustomerName}" />
<TextBlock
x:Name="txtDetail2"
Grid.Row="1"
Grid.Column="0"
FontFamily="Microsoft Sans Serif"
FontSize="10"
Foreground="{Binding ForegroundBrush}"
Text="{Binding Path=FirstCostBearerDetailString}"
ToolTip="{Binding Path=FirstCostBearerDetailString}" />
<Button
x:Name="btnRemoveSupportConcept"
Grid.Row="0"
Grid.RowSpan="2"
Grid.Column="1"
Width="20"
Height="20"
Margin="3,0,0,0"
Click="RemoveSupportConceptButton_OnClick"
Style="{DynamicResource CloseButtonStyle}"
Tag="{Binding}"
ToolTip="Hilfeplan aus der Liste entfernen" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsArchived}" Value="True">
<Setter TargetName="txtDetail1" Property="Foreground" Value="#FF808080" />
<Setter TargetName="txtDetail2" Property="Foreground" Value="#FF808080" />
</DataTrigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#33000000" />
<GradientStop Offset="1" Color="#66000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#CC000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#B2000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="MultiElementSelectionControlStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="3,1,3,1" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border
MinHeight="20"
Background="{Binding Converter={StaticResource SchedulingBackgroundConverter}}"
CornerRadius="5" />
<Border
x:Name="ItemBorder"
MinHeight="20"
Background="#FF000000"
CornerRadius="5">
<Border.OpacityMask>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#26000000" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border
x:Name="ItemContent"
MinHeight="20"
CornerRadius="5">
<Grid
Margin="5,3,5,3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
OpacityMask="{x:Null}"
SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border
Grid.Column="0"
Width="5"
Height="15"
Background="{Binding Converter={StaticResource SchedulingParticipationBrushConverter}}"
BorderBrush="{Binding Converter={StaticResource SchedulingParticipationBrushConverter}, ConverterParameter=Border}"
BorderThickness="1"
CornerRadius="2" />
<TextBlock
Grid.Column="1"
Margin="3,0,0,0"
VerticalAlignment="Center"
FontFamily="Microsoft Sans Serif"
FontSize="12"
Foreground="#FFD2D2D2"
Text="{Binding Converter={StaticResource SchedulingTextFromIDataContractConverter}}" />
<Button
x:Name="btnInformation"
Grid.RowSpan="2"
Grid.Column="2"
Width="15"
Height="15"
Margin="3,0,0,0"
Click="InformationButton_OnClick"
Content="i"
Tag="{Binding}"
ToolTip="Informationen zur Auslastung anzeigen"
Visibility="{Binding Converter={StaticResource SchedulingInformationVisibilityConverter}}" />
<Button
x:Name="btnRemoveElement"
Grid.RowSpan="2"
Grid.Column="3"
Width="15"
Height="15"
Margin="3,0,0,0"
Click="RemoveElementButton_OnClick"
Style="{DynamicResource CloseButtonStyleSmall}"
Tag="{Binding}"
ToolTip="Element aus der Liste entfernen"
Visibility="{Binding Converter={StaticResource SchedulingRemoveElementVisibilityConverter}}" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#33000000" />
<GradientStop Offset="1" Color="#66000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#CC000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#B2000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="MultiResourceSelectionControlStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="3,1,3,1" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border
MinHeight="20"
Background="{Binding Converter={StaticResource SchedulingBackgroundConverter}}"
CornerRadius="5" />
<Border
x:Name="ItemBorder"
MinHeight="20"
Background="#FF000000"
CornerRadius="5">
<Border.OpacityMask>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#26000000" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border
x:Name="ItemContent"
MinHeight="20"
CornerRadius="5">
<Grid
Margin="5,3,5,3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
OpacityMask="{x:Null}"
SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border
Grid.Column="0"
Width="5"
Height="15"
Background="{Binding Converter={StaticResource SchedulingParticipationBrushConverter}}"
BorderBrush="{Binding Converter={StaticResource SchedulingParticipationBrushConverter}, ConverterParameter=Border}"
BorderThickness="1"
CornerRadius="2" />
<Rectangle
Grid.Column="1"
Width="10"
Height="10"
VerticalAlignment="Center"
Fill="{Binding Path=Color, Converter={StaticResource StringBrushConverter}}"
Stroke="Black"
StrokeThickness="1" />
<TextBlock
Grid.Column="2"
Margin="3,0,0,0"
VerticalAlignment="Center"
FontFamily="Microsoft Sans Serif"
FontSize="12"
Foreground="#FFD2D2D2"
Text="{Binding Converter={StaticResource SchedulingTextFromIDataContractConverter}}" />
<Button
x:Name="btnRemoveElement"
Grid.RowSpan="2"
Grid.Column="3"
Width="15"
Height="15"
Margin="3,0,0,0"
Click="RemoveElementButton_OnClick"
Style="{DynamicResource CloseButtonStyleSmall}"
Tag="{Binding}"
ToolTip="Element aus der Liste entfernen"
Visibility="{Binding Converter={StaticResource SchedulingRemoveElementVisibilityConverter}}" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#33000000" />
<GradientStop Offset="1" Color="#66000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#CC000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#B2000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid Margin="5">
<Grid.ColumnDefinitions>
<!-- 5 Spalten -->
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<!-- 19 Zeilen -->
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<!-- 5 -->
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<!-- 10 -->
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<!-- 15 -->
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<!-- 19 -->
</Grid.RowDefinitions>
<!--#region Betreff-->
<Label
Grid.Row="0"
Grid.Column="0"
Margin="3"
Content="Betreff"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" />
<dxe:TextEdit
Grid.Row="0"
Grid.Column="1"
Grid.ColumnSpan="5"
Height="23"
Margin="3"
EditValue="{Binding ActualViewModel.Subject}"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" />
<!--#endregion Betreff-->
<!--#region Ort-->
<Label
Grid.Row="1"
Grid.Column="0"
Margin="3"
Content="Ort"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" />
<dxe:TextEdit
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="5"
Height="23"
Margin="3"
EditValue="{Binding ActualViewModel.Location}"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" />
<!--#endregion Ort-->
<!--#region Start-->
<Label
Grid.Row="2"
Grid.Column="0"
Margin="3"
Content="Start"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" />
<dxe:DateEdit
Grid.Row="2"
Grid.Column="1"
Height="23"
MinWidth="80"
Margin="3"
EditValue="{Binding ActualViewModel.Start}"
MaskType="DateTimeAdvancingCaret"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" />
<dxe:TextEdit
Grid.Row="2"
Grid.Column="2"
Height="23"
Margin="3"
EditValue="{Binding ActualViewModel.Start}"
IsEnabled="{Binding ActualViewModel.AllDay, Converter={StaticResource BoolReverseConverter}}"
Mask="t"
MaskType="DateTime"
MaskUseAsDisplayFormat="True"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" />
<dxe:CheckEdit
Grid.Row="2"
Grid.Column="3"
Grid.ColumnSpan="2"
Height="23"
Margin="3"
HorizontalAlignment="Right"
Content="Ganztägig"
EditValue="{Binding Appointment.AllDay}"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" />
<!--#endregion Start-->
<!--#region Ende-->
<Label
Grid.Row="3"
Grid.Column="0"
Margin="3"
Content="Ende"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" />
<dxe:DateEdit
Grid.Row="3"
Grid.Column="1"
Height="23"
MinWidth="80"
Margin="3"
EditValue="{Binding ActualViewModel.End}"
MaskType="DateTimeAdvancingCaret"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" />
<dxe:TextEdit
Grid.Row="3"
Grid.Column="2"
Height="23"
Margin="3"
EditValue="{Binding ActualViewModel.End}"
IsEnabled="{Binding ActualViewModel.AllDay, Converter={StaticResource BoolReverseConverter}}"
Mask="t"
MaskType="DateTime"
MaskUseAsDisplayFormat="True"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" />
<!--#endregion Ende-->
<!--#region Zu erledigen bis (Aufgabe)-->
<Label
Grid.Row="4"
Grid.Column="0"
Margin="3"
Content="Zu erledigen bis"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}}" />
<dxe:DateEdit
Grid.Row="4"
Grid.Column="1"
Height="23"
MinWidth="80"
Margin="3"
EditValue="{Binding ActualViewModel.DueDate}"
MaskType="DateTimeAdvancingCaret"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}}" />
<dxe:TextEdit
Grid.Row="4"
Grid.Column="2"
Grid.ColumnSpan="4"
Height="23"
Margin="3"
EditValue="{Binding ActualViewModel.DueDate}"
Mask="t"
MaskType="DateTime"
MaskUseAsDisplayFormat="True"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}}" />
<!--#endregion Zu erldedigen bis (Aufgabe)-->
<!--#region Mitarbeiter-->
<Label
Grid.Row="5"
Grid.Column="0"
Margin="3"
Content="Mitarbeiter"
Visibility="{Binding EmployeeSelectionVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" />
<Grid
Grid.Row="5"
Grid.Column="1"
Grid.ColumnSpan="4"
Height="23"
Margin="3"
Visibility="{Binding EmployeeSelectionVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="0"
Background="White"
BorderBrush="Gray"
BorderThickness="1"
Visibility="{Binding EmployeeSelectionVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}">
<TextBlock
Margin="4,0,4,0"
VerticalAlignment="Center"
Foreground="Black">
<Run Text="{Binding SelectedEmployees.Count, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:AppointmentEditView}}}" />
<Run Text=" Mitarbeiter ausgewählt" />
</TextBlock>
</Border>
<ToggleButton
x:Name="EmployeeToggleButton"
Grid.Column="1"
Width="19"
Height="19"
Margin="0,0,2,0"
IsThreeState="False"
Style="{StaticResource ExpanderLookAlikeToggleBotton}"
ToolTip="Ausgewählte Mitarbeiter anzeigen"
Visibility="{Binding EmployeeSelectionVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" />
</Grid>
<Popup
Name="PopupEmployee"
Grid.Row="5"
Grid.Column="1"
Width="450"
Height="0"
Margin="10"
Placement="MousePoint"
StaysOpen="False">
<search:MultiEmployeeSearch
x:Name="MultiEmployeeSearch"
ResultListBackground="{StaticResource EmployeeListBrush}"
SelectedEmployees="{Binding ActualViewModel.EmployeeList, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
SelectionChanged="MultiEmployeeSearch_OnSelectionChanged" />
</Popup>
<Button
x:Name="MitarbeiterPopUpOeffnenBtn"
Grid.Row="5"
Grid.Column="5"
Width="23"
Height="23"
Margin="3"
VerticalAlignment="Center"
Click="EmployeePopupClick"
Visibility="{Binding EmployeeSelectionVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}">
<Grid
Width="18"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Line
Width="16"
Height="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{x:Null}"
Stroke="#FFFFFFFF"
StrokeEndLineCap="Round"
StrokeStartLineCap="Round"
StrokeThickness="2"
X1="4"
X2="12"
Y1="8"
Y2="8" />
<Line
Width="16"
Height="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{x:Null}"
Stroke="#FFFFFFFF"
StrokeEndLineCap="Round"
StrokeStartLineCap="Round"
StrokeThickness="2"
X1="8"
X2="8"
Y1="4"
Y2="12" />
</Grid>
</Button>
<ListBox
x:Name="SelectedMitarbeiter"
Grid.Row="6"
Grid.Column="1"
Grid.ColumnSpan="3"
Height="70"
MaxHeight="70"
Margin="4,0,1,4"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
Background="{StaticResource ObjectEditBackgroundBrush}"
BorderBrush="Gray"
BorderThickness="1,0,1,1"
IsSynchronizedWithCurrentItem="True"
ItemContainerStyle="{DynamicResource MultiElementSelectionControlStyle}"
ItemsSource="{Binding Path=SelectedEmployees, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:AppointmentEditView}}}"
Visibility="{Binding IsChecked, ElementName=EmployeeToggleButton, Converter={StaticResource BoolVisibilityConverter}}">
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ListBox}">
<Border
x:Name="Bd"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
SnapsToDevicePixels="True">
<ScrollViewer
Padding="{TemplateBinding Padding}"
Focusable="False"
HorizontalScrollBarVisibility="Disabled">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
</ControlTemplate>
</ListBox.Template>
</ListBox>
<!--#endregion Mitarbeiter-->
<!--#region Klienten-->
<Label
Grid.Row="7"
Grid.Column="0"
Margin="3"
Content="Klienten"
Visibility="{Binding CustomerSelectionVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" />
<Grid
x:Name="CustomersGrid"
Grid.Row="7"
Grid.Column="1"
Grid.ColumnSpan="4"
Height="23"
Margin="3"
Visibility="{Binding CustomerSelectionVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="0"
Background="White"
BorderBrush="Gray"
BorderThickness="1"
Visibility="{Binding CustomerSelectionVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}">
<TextBlock
Margin="4,0,4,0"
VerticalAlignment="Center"
Foreground="Black">
<Run Text="{Binding SelectedCustomers.Count, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:AppointmentEditView}}}" />
<Run Text=" Klienten ausgewählt" />
</TextBlock>
</Border>
<ToggleButton
x:Name="KlientenToggleButton"
Grid.Column="1"
Width="19"
Height="19"
Margin="0,0,2,0"
IsThreeState="False"
Style="{StaticResource ExpanderLookAlikeToggleBotton}"
ToolTip="Ausgewählte Klienten anzeigen"
Visibility="{Binding CustomerSelectionVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" />
</Grid>
<Button
x:Name="KlientenPopUpOeffnenBtn"
Grid.Row="7"
Grid.Column="5"
Width="23"
Height="23"
Margin="3"
VerticalAlignment="Center"
Click="CustomerPopUpEditClick"
Visibility="{Binding CustomerSelectionVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}">
<Grid
Width="18"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Line
Width="16"
Height="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{x:Null}"
Stroke="#FFFFFFFF"
StrokeEndLineCap="Round"
StrokeStartLineCap="Round"
StrokeThickness="2"
X1="4"
X2="12"
Y1="8"
Y2="8" />
<Line
Width="16"
Height="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{x:Null}"
Stroke="#FFFFFFFF"
StrokeEndLineCap="Round"
StrokeStartLineCap="Round"
StrokeThickness="2"
X1="8"
X2="8"
Y1="4"
Y2="12" />
</Grid>
</Button>
<Popup
Name="PopupCustomer"
Grid.Row="7"
Grid.Column="1"
Width="450"
Height="0"
Margin="10"
Placement="MousePoint"
StaysOpen="False">
<search:MultiCustomerSearchView
x:Name="MultiCustomerSearch"
ResultListBackground="{StaticResource CustomerListBrush}"
SelectedCustomers="{Binding Appointment.CustomFields[VMForCustomFields].CustomerList, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
SelectionChanged="MultiCustomerSearch_OnSelectionChanged" />
</Popup>
<ListBox
x:Name="SelectedCustomersListBox"
Grid.Row="8"
Grid.Column="1"
Grid.ColumnSpan="3"
Height="70"
MaxHeight="70"
Margin="4,0,1,4"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
Background="{StaticResource ObjectEditBackgroundBrush}"
IsSynchronizedWithCurrentItem="True"
ItemContainerStyle="{DynamicResource MultiElementSelectionControlStyle}"
ItemsSource="{Binding Path=SelectedCustomers, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:AppointmentEditView}}}"
Visibility="{Binding IsChecked, ElementName=KlientenToggleButton, Converter={StaticResource BoolVisibilityConverter}}">
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ListBox}">
<Border
x:Name="Bd"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
SnapsToDevicePixels="True">
<ScrollViewer
Padding="{TemplateBinding Padding}"
Focusable="False"
HorizontalScrollBarVisibility="Disabled">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
</ControlTemplate>
</ListBox.Template>
</ListBox>
<!--#endregion-->
<!--#region Ressourcen-->
<Label
Grid.Row="9"
Grid.Column="0"
Margin="3"
Content="Ressourcen"
Visibility="{Binding ResourceSelectionVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" />
<Grid
x:Name="ResourceToggleButtonGrid"
Grid.Row="9"
Grid.Column="1"
Grid.ColumnSpan="4"
Height="25"
Margin="3"
Visibility="{Binding ResourceSelectionVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="0"
Background="White"
BorderBrush="Gray"
BorderThickness="1"
Visibility="{Binding ResourceSelectionVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}">
<TextBlock
Margin="4,0,4,0"
VerticalAlignment="Center"
Foreground="Black">
<Run Text="{Binding SelectedResources.Count, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:AppointmentEditView}}}" />
<Run Text=" Ressourcen ausgewählt" />
</TextBlock>
</Border>
<ToggleButton
x:Name="RessourcenToggleButton"
Grid.Column="1"
Width="19"
Height="19"
Margin="0,0,2,0"
IsThreeState="False"
Style="{StaticResource ExpanderLookAlikeToggleBotton}"
ToolTip="Ausgewählte Ressourcen anzeigen" />
</Grid>
<Button
x:Name="RessourcenPopUpOeffnenBtn"
Grid.Row="9"
Grid.Column="5"
Width="23"
Height="23"
Margin="3"
VerticalAlignment="Center"
Click="ResourcePopUpClick"
Visibility="{Binding ResourceSelectionVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}">
<Grid
Width="18"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Line
Width="16"
Height="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{x:Null}"
Stroke="#FFFFFFFF"
StrokeEndLineCap="Round"
StrokeStartLineCap="Round"
StrokeThickness="2"
X1="4"
X2="12"
Y1="8"
Y2="8" />
<Line
Width="16"
Height="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{x:Null}"
Stroke="#FFFFFFFF"
StrokeEndLineCap="Round"
StrokeStartLineCap="Round"
StrokeThickness="2"
X1="8"
X2="8"
Y1="4"
Y2="12" />
</Grid>
</Button>
<Popup
Name="PopupResource"
Grid.Row="9"
Grid.Column="1"
Width="450"
Height="0"
Margin="10"
Placement="MousePoint"
StaysOpen="False">
<search:ResourcesTreeSearchView
x:Name="ResourcesTreeSearchView"
ResultListBackground="{StaticResource ResourceContentBrush}"
SelectedResources="{Binding Appointment.CustomFields[VMForCustomFields].ResourceList}"
SelectionChanged="ResourcesTreeSearchView_OnSelectionChanged" />
</Popup>
<ListBox
x:Name="ResourceListBox"
Grid.Row="10"
Grid.Column="1"
Grid.ColumnSpan="3"
Height="70"
MaxHeight="70"
Margin="4,0,1,4"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
Background="{StaticResource ObjectEditBackgroundBrush}"
IsSynchronizedWithCurrentItem="True"
ItemContainerStyle="{StaticResource MultiResourceSelectionControlStyle}"
ItemsSource="{Binding Path=SelectedResources, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:AppointmentEditView}}}"
Visibility="{Binding IsChecked, ElementName=RessourcenToggleButton, Converter={StaticResource BoolVisibilityConverter}}">
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ListBox}">
<Border
x:Name="Bd"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
SnapsToDevicePixels="True">
<ScrollViewer
Padding="{TemplateBinding Padding}"
Focusable="False"
HorizontalScrollBarVisibility="Disabled">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
</ControlTemplate>
</ListBox.Template>
</ListBox>
<!--#endregion Ressourcen-->
<!--#region Hilfeplan (Aufgabe)-->
<Label
Grid.Row="11"
Grid.Column="0"
Margin="3"
Content="Hilfeplan"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}}" />
<Button
x:Name="SupportConceptsPopUpOeffnenBtn"
Grid.Row="11"
Grid.Column="5"
Width="20"
Height="20"
Margin="3"
VerticalAlignment="Center"
Click="SupportConceptsPopUpClick"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}}">
<Grid
Width="18"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Line
Width="16"
Height="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{x:Null}"
Stroke="#FFFFFFFF"
StrokeEndLineCap="Round"
StrokeStartLineCap="Round"
StrokeThickness="2"
X1="4"
X2="12"
Y1="8"
Y2="8" />
<Line
Width="16"
Height="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{x:Null}"
Stroke="#FFFFFFFF"
StrokeEndLineCap="Round"
StrokeStartLineCap="Round"
StrokeThickness="2"
X1="8"
X2="8"
Y1="4"
Y2="12" />
</Grid>
</Button>
<Popup
Name="PopupSupportConcepts"
Grid.Row="11"
Grid.Column="1"
Width="450"
Height="0"
Margin="10"
Placement="MousePoint"
StaysOpen="False">
<search:SupportConceptSearchView
x:Name="SupportConceptsTreeSearchView"
ItemSelected="SupportConceptSelectionControl_ItemSelected"
ShowFilterPanel="True" />
</Popup>
<ListBox
Name="SelectedSupportConceptsListBox"
Grid.Row="11"
Grid.Column="1"
Grid.ColumnSpan="4"
Height="35"
MaxHeight="35"
Margin="4,0,1,4"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
Background="White"
IsSynchronizedWithCurrentItem="True"
ItemContainerStyle="{StaticResource MultiSupportConceptSelectionControlStyle}"
ItemsSource="{Binding Path=SelectedSupportConcepts, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:AppointmentEditView}}}"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}}">
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ListBox}">
<Border
x:Name="Bd"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
SnapsToDevicePixels="True">
<ScrollViewer
Padding="{TemplateBinding Padding}"
Focusable="False"
HorizontalScrollBarVisibility="Disabled">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
</ControlTemplate>
</ListBox.Template>
</ListBox>
<!--#endregion-->
<!--#region Beschreibung (Aufgabe)-->
<Label
Grid.Row="13"
Grid.Column="0"
Margin="3"
Content="Beschreibung"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}}" />
<TextBox
x:Name="TaskDescription"
Grid.Row="13"
Grid.Column="1"
Grid.ColumnSpan="5"
Height="45"
Margin="3"
AcceptsReturn="True"
HorizontalScrollBarVisibility="Disabled"
MaxLength="1024"
Text="{Binding Path=ActualViewModel.TaskDescription, UpdateSourceTrigger=PropertyChanged}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}}" />
<!--#endregion-->
<!--#region Erledigt am (Aufgabe)-->
<Label
Grid.Row="14"
Grid.Column="0"
Margin="3"
Content="Erledigt am"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}}" />
<dxe:DateEdit
x:Name="CompletedDate"
Grid.Row="14"
Grid.Column="1"
Grid.ColumnSpan="5"
Height="23"
MinWidth="80"
Margin="3"
Background="White"
EditValue="{Binding ActualViewModel.CompletedDate, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
MaskType="DateTimeAdvancingCaret"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}}" />
<!--#endregion-->
<!--#region Notiz-->
<Label
Grid.Row="15"
Grid.Column="0"
Margin="3"
Content="Notiz"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" />
<TextBox
Grid.Row="15"
Grid.Column="1"
Grid.ColumnSpan="5"
Height="45"
Margin="3"
AcceptsReturn="True"
HorizontalScrollBarVisibility="Disabled"
MaxLength="1024"
Text="{Binding Path=ActualViewModel.Description, UpdateSourceTrigger=PropertyChanged}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" />
<!--#endregion-->
<!--#region Notiz (Aufgabe)-->
<Label
Grid.Row="15"
Grid.Column="0"
Margin="3"
Content="Notiz"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}}" />
<TextBox
Grid.Row="15"
Grid.Column="1"
Grid.ColumnSpan="5"
Height="45"
Margin="3"
AcceptsReturn="True"
HorizontalScrollBarVisibility="Disabled"
MaxLength="1024"
Text="{Binding Path=ActualViewModel.CompletedNotice, UpdateSourceTrigger=PropertyChanged}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}}" />
<!--#endregion-->
<!--#region Wiederholung nur wenn es keine Occurrence ist-->
<Button
Grid.Row="16"
Grid.Column="0"
Grid.ColumnSpan="5"
Height="25"
Margin="3"
Command="{Binding EditRecurrenceCommand}"
Content="Wiederholung"
Visibility="{Binding RecurrenceButtonVisibility, Mode=OneWay}" />
<!--<dxe:ComboBoxEdit Grid.Column="1" Grid.Row="16" Margin="3" Grid.ColumnSpan="3" Height="25"
x:Name="RecurrenceTypeComboBoxEdit"
Visibility="{Binding RecurrenceButtonVisibility, Mode=OneWay}"
ItemsSource="{Binding AvailableAppointmentRecurrenceTypes, UpdateSourceTrigger=PropertyChanged}"
EditValueChanged="RecurrenceTypeComboBoxEdit_OnChanged">
</dxe:ComboBoxEdit>
<Button Grid.Column="4" Grid.Row="16" Content="Bearbeiten" Grid.ColumnSpan="2" Margin="3"
IsEnabled="{Binding Appointment.RecurrenceInfo, Converter={StaticResource BoolNullCheckConverter}}"
Visibility="{Binding RecurrenceButtonVisibility, Mode=OneWay}"
Click="EditRecurrenceButton_OnClick"
/>-->
<!--#endregion-->
<CheckBox
Grid.Row="18"
Grid.Column="0"
Grid.ColumnSpan="6"
Margin="3"
Content="Privater Termin"
IsChecked="{Binding Path=ActualViewModel.IsPrivate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding ActualViewModel.IsTask, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=Reverse}" />
<Grid
Grid.Row="19"
Grid.Column="0"
Grid.ColumnSpan="6"
VerticalAlignment="Bottom">
<StackPanel
Height="40"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
Orientation="Horizontal">
<Button
Width="80"
Height="25"
Margin="3"
Click="OkButton_Click"
Content="OK"
Visibility="{Binding Path=OkButtonVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" />
<Button
Width="80"
Height="25"
Margin="3"
Click="CloseButton_OnClick"
Content="Abbrechen" />
<Button
Width="80"
Height="25"
Margin="3"
Click="DeleteButton_OnClick"
Content="Löschen"
Visibility="{Binding Path=DeleteButtonVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" />
</StackPanel>
</Grid>
</Grid>
</dx:DXWindow>