<Application x:Class="Elwig.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:Elwig"
             xmlns:controls="clr-namespace:Elwig.Controls"
             StartupUri="Windows\MainWindow.xaml"
             xmlns:ui="http://schemas.modernwpf.com/2019">
    <Application.Resources>
        <controls:BoolToStringConverter x:Key="BoolToStarConverter" FalseValue="" TrueValue="*"/>

        <DataTemplate x:Key="PostalDestTemplate">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Dest}"/>
                <TextBlock Text="{Binding Ort.Name, StringFormat='{} ({0})'}"/>
            </StackPanel>
        </DataTemplate>
        <DataTemplate x:Key="KgNrTemplate">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}"/>
                <TextBlock Text="{Binding KgNr, StringFormat='{} ({0:00000})'}"/>
            </StackPanel>
        </DataTemplate>
        <DataTemplate x:Key="MemberAdminNameTemplate">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding MgNr}" MinWidth="48" Margin="0,0,10,0" TextAlignment="Right"/>
                <TextBlock Text="{Binding AdministrativeName1}" MinWidth="100" Margin="0,0,5,0"/>
                <TextBlock Text="{Binding AdministrativeName2}"/>
            </StackPanel>
        </DataTemplate>

        <ControlTemplate x:Key="WineVarietyTemplateSimple">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}"/>
            </StackPanel>
        </ControlTemplate>
        <ControlTemplate x:Key="WineVarietyTemplateExtended">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding SortId}" MinWidth="36" Margin="0,0,10,0"/>
                <TextBlock Text="{Binding Name}"/>
                <TextBlock Text="{Binding CommentFormat}" FontSize="10" VerticalAlignment="Bottom" Margin="0,0,0,2"/>
            </StackPanel>
        </ControlTemplate>
        <DataTemplate x:Key="WineVarietyTemplate">
            <Control x:Name="Control" Focusable="False" Template="{StaticResource WineVarietyTemplateExtended}"/>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ComboBoxItem}}, Path=IsSelected}" Value="{x:Null}">
                    <Setter TargetName="Control" Property="Template" Value="{StaticResource WineVarietyTemplateSimple}"/>
                </DataTrigger>
            </DataTemplate.Triggers>
        </DataTemplate>

        <DataTemplate x:Key="ModifierTemplate">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}" MinWidth="250" Margin="0,0,10,0"/>
                <TextBlock Text="{Binding ValueStr}"/>
            </StackPanel>
        </DataTemplate>

        <DataTemplate x:Key="WineAttributeTemplate">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}" MinWidth="150" Margin="0,0,10,0"/>
            </StackPanel>
        </DataTemplate>

        <ControlTemplate x:Key="WineQualityLevelTemplateSimple">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}"/>
            </StackPanel>
        </ControlTemplate>
        <ControlTemplate x:Key="WineQualityLevelTemplateExtended">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding IsPredicate, Converter={StaticResource BoolToStarConverter}}" MinWidth="6"/>
                <TextBlock Text="{Binding Name}" MinWidth="100" Margin="0,0,10,0"/>
                <TextBlock Text="{Binding MinKmwStr}"/>
            </StackPanel>
        </ControlTemplate>
        <DataTemplate x:Key="WineQualityLevelTemplate">
            <Control x:Name="Control" Focusable="False" Template="{StaticResource WineQualityLevelTemplateExtended}"/>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ComboBoxItem}}, Path=IsSelected}" Value="{x:Null}">
                    <Setter TargetName="Control" Property="Template" Value="{StaticResource WineQualityLevelTemplateSimple}"/>
                </DataTrigger>
            </DataTemplate.Triggers>
        </DataTemplate>

        <ControlTemplate x:Key="WineOriginTemplateSimple">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}"/>
            </StackPanel>
        </ControlTemplate>
        <ControlTemplate x:Key="WineOriginTemplateExtended">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding HkIdLevel}" MinWidth="70" Margin="0,0,10,0"/>
                <TextBlock Text="{Binding Name}"/>
            </StackPanel>
        </ControlTemplate>
        <DataTemplate x:Key="WineOriginTemplate">
            <Control x:Name="Control" Focusable="False" Template="{StaticResource WineOriginTemplateExtended}"/>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ComboBoxItem}}, Path=IsSelected}" Value="{x:Null}">
                    <Setter TargetName="Control" Property="Template" Value="{StaticResource WineOriginTemplateSimple}"/>
                </DataTrigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </Application.Resources>
</Application>