<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:ctrl="clr-namespace:Elwig.Controls"
             StartupUri="Windows\MainWindow.xaml"
             xmlns:ui="http://schemas.modernwpf.com/2019">
    <Application.Resources>
        <ctrl:BoolToStringConverter x:Key="BoolToStarConverter" FalseValue="" TrueValue="*"/>
        <ctrl:WidthToPaddingConverter x:Key="WidthToPaddingConverter"/>

        <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>

        <DataTemplate x:Key="WineOriginTemplate">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding HkIdLevel}" MinWidth="70" Margin="0,0,10,0"/>
                <TextBlock Text="{Binding Name}"/>
            </StackPanel>
        </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="WineOriginComboTemplate">
            <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>

        <DataTemplate x:Key="GemTemplate">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding Name}"/>
                <TextBlock Text="{Binding Gkz, StringFormat='{} ({0:00000})'}"/>
            </StackPanel>
        </DataTemplate>

        <DataTemplate x:Key="WbKgTemplate">
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
                <TextBlock Width="250">
                    <TextBlock Text="{Binding Name}"/>
                    <TextBlock Text="{Binding KgNr, StringFormat='{}({0:00000})'}"/>
                </TextBlock>
                <TextBlock Text="{Binding Gem.WbGem.Origin.Name}"/>
            </StackPanel>
        </DataTemplate>
        <DataTemplate x:Key="WbKgGlTemplate">
            <StackPanel Orientation="Horizontal">
                <TextBlock Width="220">
                    <TextBlock Text="{Binding Name}"/>
                    <TextBlock Text="{Binding KgNr, StringFormat='{}({0:00000})'}"/>
                </TextBlock>
                <TextBlock Text="{Binding WbKg.Gl.Name}"/>
            </StackPanel>
        </DataTemplate>
    </Application.Resources>
</Application>