JD2022-TU1/main/tools/modules/JD.Guinness.WPF.Module/View/Ps4View.xaml

493 lines
34 KiB
XML

<DockPanel
x:Class="JD.Guinness.WPF.Module.View.Ps4View"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:editors="http://schemas.actiprosoftware.com/winfx/xaml/editors"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dataGrid="clr-namespace:ActiproSoftware.Windows.Controls.DataGrid;assembly=DataGrid.Contrib"
xmlns:behavior="clr-namespace:JD.Guinness.WPF.Module.Behavior"
xmlns:control="clr-namespace:JD.Guinness.WPF.Module.Control"
xmlns:sony="clr-namespace:JD.SonyTrophy.Service;assembly=JD.SonyTrophy.Service"
Name="This"
Margin="5">
<DockPanel.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../Resource/Icons.xaml"/>
<ResourceDictionary Source="../Resource/Converters.xaml"/>
</ResourceDictionary.MergedDictionaries>
<control:DataGridHeaderTemplateSelector x:Key="DataGridHeaderTemplateSelector" />
<Style TargetType="editors:AutoCompleteBox" BasedOn="{StaticResource {x:Type editors:AutoCompleteBox}}">
<Setter Property="ItemsSource" Value="{Binding DataContext.Game.OasisLines, ElementName=This}"/>
<Setter Property="PlaceholderText" Value="Select an oasis line"/>
<Setter Property="DataFilter">
<Setter.Value>
<editors:AutoCompleteBoxStringFilter />
</Setter.Value>
</Setter>
<Setter Property="behavior:AutoCompleteBoxBehavior.ShowAllOnOpen" Value="True" />
</Style>
</ResourceDictionary>
</DockPanel.Resources>
<DockPanel DockPanel.Dock="Bottom" Margin="0,5,0,0">
<Button DockPanel.Dock="Right" VerticalAlignment="Bottom" Command="{Binding GenerateCommand}" Margin="5,0,0,0" Height="40" Padding="5">
<StackPanel Orientation="Horizontal">
<TextBlock Text="Generate " VerticalAlignment="Center"/>
<ContentPresenter ContentTemplate="{StaticResource GenerateIcon}"/>
</StackPanel>
</Button>
<TabControl Name="Zones" DockPanel.Dock="Bottom" ItemsSource="{Binding Configuration.Zones}" SelectedIndex="0">
<TabControl.Template>
<ControlTemplate TargetType="TabControl">
<Grid KeyboardNavigation.TabNavigation="Local">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Zones" VerticalAlignment="Center" FontSize="15" Margin="0,0,5,0"/>
<TabPanel Name="HeaderPanel" Grid.Row="0" Panel.ZIndex="1" Margin="0,0,5,0" IsItemsHost="True" KeyboardNavigation.TabIndex="1" Background="Transparent" />
<Button ToolTip="Add PS4 zone" Command="{Binding AddZoneCommand}" VerticalAlignment="Center" Padding="0" Height="20">
<ContentPresenter ContentTemplate="{StaticResource AddIcon}"/>
</Button>
</StackPanel>
<Border
Grid.Row="1"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
KeyboardNavigation.TabNavigation="Local"
KeyboardNavigation.DirectionalNavigation="Contained"
KeyboardNavigation.TabIndex="2" >
<ContentPresenter Name="PART_SelectedContentHost" Margin="5" ContentSource="SelectedContent" />
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{DynamicResource GrayTextBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</TabControl.Template>
<TabControl.ItemTemplate>
<DataTemplate>
<DockPanel Background="Transparent">
<Button ToolTip="Remove PS4 zone" Height="20" Padding="0" Command="{Binding DataContext.RemoveZoneCommand, ElementName=This}" CommandParameter="{Binding}" Margin="5,2,0,2" DockPanel.Dock="Right">
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Visibility" Value="Hidden"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType=DockPanel}}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<ContentPresenter ContentTemplate="{StaticResource CloseIcon}"/>
</Button>
<ContentControl ToolTip="{Binding Warnings}" Margin="0,0,5,0">
<ContentControl.Style>
<Style TargetType="ContentControl">
<Setter Property="Visibility" Value="Visible"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Warnings}" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
<ContentPresenter Height="24" ContentTemplate="{StaticResource WarningIcon}"/>
</ContentControl>
<TextBlock VerticalAlignment="Center" Text="{Binding Name}"/>
</DockPanel>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<DockPanel>
<DockPanel DockPanel.Dock="Bottom" IsEnabled="{Binding DataContext.Game.IsAvailable, ElementName=This}">
<TextBlock DockPanel.Dock="Left" VerticalAlignment="Center" Text="Name"/>
<TextBox DockPanel.Dock="Left" Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" Margin="5,0,0,0" MinWidth="100"/>
<TextBlock DockPanel.Dock="Left" VerticalAlignment="Center" Margin="5,0,0,0" Text="NpCommId"/>
<TextBox DockPanel.Dock="Left" Text="{Binding NpCommId, UpdateSourceTrigger=PropertyChanged}" Margin="5,0,0,0" MinWidth="100"/>
<TextBlock DockPanel.Dock="Left" Text="Trp file" Margin="5,0,0,0" VerticalAlignment="Center"/>
<Button DockPanel.Dock="Right" Content="..." Command="{Binding DataContext.SelectTrpFileCommand, ElementName=This}" CommandParameter="{Binding}"/>
<TextBox Text="{Binding TrpFilePath, UpdateSourceTrigger=PropertyChanged}" Margin="5,0,0,0"/>
</DockPanel>
<Expander Margin="0,0,0,5" Header="Languages">
<dataGrid:ThemedDataGrid
Tag="{Binding DataContext.Game, ElementName=This}"
ItemsSource="{Binding Languages}"
AutoGenerateColumns="False"
IsReadOnly="{Binding DataContext.Game.IsAvailable, ElementName=This, Converter={StaticResource InverseBooleanConverter}}"
SelectionMode="Single"
GridLinesVisibility="None"
HeadersVisibility="Column"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserResizeRows="False"
CanUserSortColumns="True"
ColumnWidth="Auto">
<dataGrid:ThemedDataGrid.ContextMenu>
<ContextMenu>
<MenuItem
Header="Shown columns"
ItemsSource="{Binding PlacementTarget.Columns, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
ItemTemplateSelector="{StaticResource DataGridHeaderTemplateSelector}">
<MenuItem.Icon>
<ContentPresenter ContentTemplate="{StaticResource ColumnsIcon}"/>
</MenuItem.Icon>
</MenuItem>
<Separator/>
<MenuItem
Header="Duplicate language"
Command="{Binding PlacementTarget.Tag.DuplicateLanguageCommand, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
CommandParameter="{Binding PlacementTarget.SelectedItem.Value, RelativeSource={RelativeSource AncestorType=ContextMenu}}">
<MenuItem.Icon>
<ContentPresenter ContentTemplate="{StaticResource DuplicateIcon}"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem
Header="Remove duplicate language"
Command="{Binding PlacementTarget.Tag.RemoveLanguageCommand, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
CommandParameter="{Binding PlacementTarget.SelectedItem.Value, RelativeSource={RelativeSource AncestorType=ContextMenu}}">
<MenuItem.Icon>
<ContentPresenter ContentTemplate="{StaticResource RemoveIcon}"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</dataGrid:ThemedDataGrid.ContextMenu>
<dataGrid:ThemedDataGrid.Columns>
<DataGridCheckBoxColumn Header="Include" Binding="{Binding IsSelected, UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTemplateColumn Header="Oasis name" IsReadOnly="True" SortMemberPath="Value.Language.Name">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Value.Language.Name}"/>
<TextBlock Text="*">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Value.IsDuplicate}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Oasis id" Binding="{Binding Value.Language.Id}" IsReadOnly="True" Visibility="Collapsed"/>
<DataGridTextColumn Header="PS4 id" Binding="{Binding Value.Ps4Id, UpdateSourceTrigger=PropertyChanged}"/>
</dataGrid:ThemedDataGrid.Columns>
</dataGrid:ThemedDataGrid>
</Expander>
</DockPanel>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
</DockPanel>
<StackPanel Orientation="Vertical" DockPanel.Dock="Top" Margin="0,0,0,5" IsEnabled="{Binding Game.IsAvailable}">
<TextBlock Text="Title" FontSize="15" Margin="0,0,0,5"/>
<DockPanel>
<DockPanel Margin="0,0,5,0" DockPanel.Dock="Left" Height="{Binding ActualHeight, ElementName=InfoGrid}">
<Button ToolTip="Select image" Command="{Binding DataContext.SetTitleImageCommand, ElementName=This}" HorizontalAlignment="Center" Padding="0">
<Grid>
<Image Name="TitleImage" MaxHeight="{Binding Game.Settings.ImageMaxHeight}" behavior:ImageBehavior.SourceFile="{Binding Configuration.TitleImagePath}"/>
<TextBlock Text="..." VerticalAlignment="Center" HorizontalAlignment="Center" Margin="5">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Source, ElementName=TitleImage}" Value="{x:Null}">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType=Button}}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
</Button>
</DockPanel>
<Grid Name="InfoGrid" Margin="0,1,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="5"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="5"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="Version" Margin="0,0,5,0" VerticalAlignment="Center"/>
<TextBlock Text="Title name" Margin="0,0,5,0" Grid.Row="2" VerticalAlignment="Center"/>
<TextBlock Text="Title description" Margin="0,0,5,0" Grid.Row="4" VerticalAlignment="Center"/>
<TextBox Text="{Binding Configuration.Version}" Grid.Column="1"/>
<ContentControl Grid.Column="1" Grid.Row="2" PreviewMouseLeftButtonDown="OnEditablePreviewMouseLeftButtonDown">
<TextBox Text="{Binding Configuration.TitleName, Converter={StaticResource LocalizedLineToMasterConverter}, FallbackValue=..., IsAsync=True}" IsReadOnly="True" TextWrapping="Wrap" VerticalAlignment="Center">
<TextBox.Tag>
<editors:AutoCompleteBox Submitted="OnAutoCompleteBoxSubmitted" VerticalAlignment="Center" SelectedItem="{Binding Configuration.TitleName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Id" TextMemberPath="Id"/>
</TextBox.Tag>
</TextBox>
</ContentControl>
<ContentControl Grid.Column="1" Grid.Row="4" PreviewMouseLeftButtonDown="OnEditablePreviewMouseLeftButtonDown">
<TextBox Text="{Binding Configuration.TitleDescription, Converter={StaticResource LocalizedLineToMasterConverter}, FallbackValue=..., IsAsync=True}" IsReadOnly="True" TextWrapping="Wrap" VerticalAlignment="Center">
<TextBox.Tag>
<editors:AutoCompleteBox Submitted="OnAutoCompleteBoxSubmitted" VerticalAlignment="Center" SelectedItem="{Binding Configuration.TitleDescription, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Id" TextMemberPath="Id"/>
</TextBox.Tag>
</TextBox>
</ContentControl>
</Grid>
</DockPanel>
</StackPanel>
<Grid DockPanel.Dock="Top" Margin="0,0,0,5">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" >
<StackPanel.Resources>
<Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Width" Value="30"/>
<Setter Property="Height" Value="30"/>
<Setter Property="Padding" Value="0"/>
</Style>
</StackPanel.Resources>
<Button ToolTip="Add PS4 trophy" Command="{Binding AddPlatformChallengeCommand}">
<ContentPresenter ContentTemplate="{StaticResource AddIcon}"/>
</Button>
<Button ToolTip="Remove PS4 trophy" Command="{Binding RemovePlatformChallengeCommand}" CommandParameter="{Binding SelectedItems, ElementName=DataGrid}" Margin="5,0,0,0">
<ContentPresenter ContentTemplate="{StaticResource RemoveIcon}"/>
</Button>
<Button ToolTip="Duplicate PS4 trophy" Command="{Binding DuplicatePlatformChallengeCommand}" CommandParameter="{Binding SelectedItems, ElementName=DataGrid}" Margin="5,0,0,0">
<ContentPresenter ContentTemplate="{StaticResource DuplicateIcon}"/>
</Button>
<Button Padding="2" ToolTip="Replicate PS5 trophies" Command="{Binding SetSameAsPs5Command}" Margin="5,0,0,0">
<ContentPresenter ContentTemplate="{StaticResource PS5Icon}"/>
</Button>
<Button ToolTip="Set images from id" Command="{Binding SetImageFromIdCommand}" Margin="10,0,0,0">
<ContentPresenter ContentTemplate="{StaticResource ImageFolderIcon}"/>
</Button>
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<ContentControl ToolTip="{Binding Configuration.Warnings}" Margin="0,0,5,0">
<ContentControl.Style>
<Style TargetType="ContentControl">
<Setter Property="Visibility" Value="Visible"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Configuration.Warnings}" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
<ContentPresenter Height="24" ContentTemplate="{StaticResource WarningIcon}"/>
</ContentControl>
<TextBlock Text="{Binding PlatformChallenges.Count, StringFormat={}{0} trophies}" VerticalAlignment="Center" FontSize="15"/>
<TextBlock Text="/" VerticalAlignment="Center" Margin="5,0,5,0" FontSize="15"/>
<TextBlock Text="{Binding TotalPoints, StringFormat={}{0} points}" VerticalAlignment="Center" FontSize="15"/>
</StackPanel>
</Grid>
<dataGrid:ThemedDataGrid
Name="DataGrid"
ItemsSource="{Binding PlatformChallenges}"
behavior:DataGridBehavior.ShowCustomColumns="True"
AutoGenerateColumns="False"
IsReadOnly="{Binding Game.IsAvailable, Converter={StaticResource InverseBooleanConverter}}"
SelectionMode="Extended"
GridLinesVisibility="None"
HeadersVisibility="Column"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserResizeRows="False"
CanUserSortColumns="True"
CanUserReorderColumns="True"
ColumnWidth="Auto">
<dataGrid:ThemedDataGrid.InputBindings>
<KeyBinding Key="Insert" Command="{Binding AddPlatformChallengeCommand}"/>
<KeyBinding Key="Delete" Command="{Binding RemovePlatformChallengeCommand}" CommandParameter="{Binding SelectedItems, ElementName=DataGrid}"/>
<KeyBinding Key="F1" Command="{Binding Game.ItemFocuser.GoToItemCommand}" CommandParameter="{Binding SelectedItem.Challenge, ElementName=DataGrid}"/>
</dataGrid:ThemedDataGrid.InputBindings>
<dataGrid:ThemedDataGrid.ContextMenu>
<ContextMenu>
<MenuItem
Header="Add new column"
Command="{Binding Source={x:Static behavior:DataGridBehavior.AddColumnCommand}}"
CommandParameter="{Binding PlacementTarget, RelativeSource={RelativeSource AncestorType=ContextMenu}}">
<MenuItem.Icon>
<ContentPresenter ContentTemplate="{StaticResource AddColumnIcon}"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem
Header="Shown columns"
ItemsSource="{Binding PlacementTarget.Columns, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
ItemTemplateSelector="{StaticResource DataGridHeaderTemplateSelector}">
<MenuItem.Icon>
<ContentPresenter ContentTemplate="{StaticResource ColumnsIcon}"/>
</MenuItem.Icon>
</MenuItem>
<Separator/>
<MenuItem
Header="Go to challenge"
InputGestureText="F1"
Command="{Binding Game.ItemFocuser.GoToItemCommand}"
CommandParameter="{Binding PlacementTarget.SelectedItem.Challenge, RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>
<Separator/>
<MenuItem
Header="Add PS4 trophy"
Command="{Binding AddPlatformChallengeCommand}"
InputGestureText="Insert">
<MenuItem.Icon>
<ContentPresenter ContentTemplate="{StaticResource AddIcon}"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem
Header="Remove PS4 trophy"
Command="{Binding RemovePlatformChallengeCommand}"
CommandParameter="{Binding PlacementTarget.SelectedItems, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
InputGestureText="Delete">
<MenuItem.Icon>
<ContentPresenter ContentTemplate="{StaticResource RemoveIcon}"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem
Header="Duplicate PS4 trophy"
Command="{Binding DuplicatePlatformChallengeCommand}"
CommandParameter="{Binding PlacementTarget.SelectedItems, RelativeSource={RelativeSource AncestorType=ContextMenu}}">
<MenuItem.Icon>
<ContentPresenter ContentTemplate="{StaticResource DuplicateIcon}"/>
</MenuItem.Icon>
</MenuItem>
<Separator/>
<MenuItem Header="Set images from id" Command="{Binding SetImageFromIdCommand}">
<MenuItem.Icon>
<ContentPresenter ContentTemplate="{StaticResource ImageFolderIcon}"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</dataGrid:ThemedDataGrid.ContextMenu>
<dataGrid:ThemedDataGrid.Columns>
<DataGridTemplateColumn Header="Warnings" IsReadOnly="True" SortMemberPath="Warnings">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ContentControl ToolTip="{Binding Warnings}" Margin="0,0,5,0">
<ContentControl.Style>
<Style TargetType="ContentControl">
<Setter Property="Visibility" Value="Visible"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Warnings}" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
<ContentPresenter Height="24" ContentTemplate="{StaticResource WarningIcon}"/>
</ContentControl>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn IsReadOnly="True" Header="Name (Oasis id)" Binding="{Binding Challenge.Name.Id}" Visibility="Collapsed"/>
<DataGridTextColumn IsReadOnly="True" Header="Name (Oasis path)" Binding="{Binding Challenge.Name.Path}" Visibility="Collapsed"/>
<DataGridTextColumn IsReadOnly="True" Header="Name" Binding="{Binding Challenge.Name, Converter={StaticResource LocalizedLineToMasterConverter}, FallbackValue=..., IsAsync=True}"/>
<DataGridTextColumn IsReadOnly="True" Header="Objective (Oasis id)" Binding="{Binding Challenge.Objective.Id}" Visibility="Collapsed"/>
<DataGridTextColumn IsReadOnly="True" Header="Objective (Oasis path)" Binding="{Binding Challenge.Objective.Path}" Visibility="Collapsed"/>
<DataGridTextColumn IsReadOnly="True" Header="Objective" Binding="{Binding Challenge.Objective, Converter={StaticResource LocalizedLineToMasterConverter}, FallbackValue=..., IsAsync=True}"/>
<DataGridTextColumn Header="Id" Binding="{Binding Id, UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTemplateColumn Header="Grade" SortMemberPath="Grade">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ContentPresenter ToolTip="{Binding Grade}" ContentTemplate="{StaticResource TrophyIcon}">
<ContentPresenter.Style>
<Style TargetType="ContentPresenter">
<Setter Property="TextBlock.Foreground" Value="SaddleBrown"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Grade}" Value="{x:Static sony:TrophyGrade.Silver}">
<Setter Property="TextBlock.Foreground" Value="Silver"/>
</DataTrigger>
<DataTrigger Binding="{Binding Grade}" Value="{x:Static sony:TrophyGrade.Gold}">
<Setter Property="TextBlock.Foreground" Value="Gold"/>
</DataTrigger>
<DataTrigger Binding="{Binding Grade}" Value="{x:Static sony:TrophyGrade.Platinium}">
<Setter Property="TextBlock.Foreground" Value="WhiteSmoke"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentPresenter.Style>
</ContentPresenter>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox SelectedItem="{Binding Grade, UpdateSourceTrigger=PropertyChanged}">
<ComboBox.ItemsSource>
<x:Array Type="{x:Type sony:TrophyGrade}">
<sony:TrophyGrade>Bronze</sony:TrophyGrade>
<sony:TrophyGrade>Silver</sony:TrophyGrade>
<sony:TrophyGrade>Gold</sony:TrophyGrade>
<sony:TrophyGrade>Platinium</sony:TrophyGrade>
</x:Array>
</ComboBox.ItemsSource>
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<ContentPresenter HorizontalAlignment="Center" ToolTip="{Binding}" ContentTemplate="{StaticResource TrophyIcon}">
<ContentPresenter.Style>
<Style TargetType="ContentPresenter">
<Setter Property="TextBlock.Foreground" Value="SaddleBrown"/>
<Style.Triggers>
<DataTrigger Binding="{Binding}" Value="{x:Static sony:TrophyGrade.Silver}">
<Setter Property="TextBlock.Foreground" Value="Silver"/>
</DataTrigger>
<DataTrigger Binding="{Binding}" Value="{x:Static sony:TrophyGrade.Gold}">
<Setter Property="TextBlock.Foreground" Value="Gold"/>
</DataTrigger>
<DataTrigger Binding="{Binding}" Value="{x:Static sony:TrophyGrade.Platinium}">
<Setter Property="TextBlock.Foreground" Value="WhiteSmoke"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentPresenter.Style>
</ContentPresenter>
<TextBlock Text="{Binding}" VerticalAlignment="Center" Margin="5,0,0,0"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
<DataGridCheckBoxColumn Header="Is secret" Binding="{Binding IsSecret, UpdateSourceTrigger=PropertyChanged}"/>
<DataGridCheckBoxColumn Header="Is required for platinium" Binding="{Binding IsRequiredForPlatinium, UpdateSourceTrigger=PropertyChanged}"/>
<DataGridTemplateColumn Header="Image" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button ToolTip="Select image" Command="{Binding DataContext.SetImageCommand, ElementName=This}" CommandParameter="{Binding}" Padding="0">
<Grid>
<Image Name="TrophyImage" behavior:ImageBehavior.SourceFile="{Binding ImagePath}" MaxHeight="{Binding DataContext.Game.Settings.ImageMaxHeight, ElementName=This}"/>
<TextBlock Text="..." VerticalAlignment="Center" HorizontalAlignment="Center">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Source, ElementName=TrophyImage}" Value="{x:Null}">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType=Button}}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</dataGrid:ThemedDataGrid.Columns>
</dataGrid:ThemedDataGrid>
</DockPanel>