Files
marechai/Marechai.App/Presentation/Views/Admin/AdminWwpcImportReviewPage.xaml

489 lines
35 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Page x:Class="Marechai.App.Presentation.Views.Admin.AdminWwpcImportReviewPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:CommunityToolkit.WinUI.UI.Controls"
xmlns:models="using:Marechai.App.Presentation.ViewModels.Admin"
x:Name="PageRoot"
NavigationCacheMode="Disabled"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Page.Resources>
<x:String x:Key="DashValue"></x:String>
</Page.Resources>
<Grid RowSpacing="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Row="0"
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
BorderBrush="{ThemeResource DividerStrokeColorDefaultBrush}"
BorderThickness="0,0,0,1"
Padding="16,12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0"
Content="&#xE72B;"
FontFamily="{ThemeResource SymbolThemeFontFamily}"
Command="{Binding GoBackCommand}"
Style="{ThemeResource TextBlockButtonStyle}"
Padding="8,4"
VerticalAlignment="Center"
Margin="0,0,12,0" />
<StackPanel Grid.Column="1">
<TextBlock Text="{Binding Source={StaticResource Strings}, Path=WwpcReviewTitle}"
FontSize="20"
FontWeight="SemiBold" />
<TextBlock Text="{Binding Detail.Name}"
FontSize="12"
Foreground="{ThemeResource SystemBaseMediumColor}" />
</StackPanel>
<StackPanel Grid.Column="2" Orientation="Horizontal" Spacing="8" VerticalAlignment="Center">
<Button Content="{Binding Source={StaticResource Strings}, Path=WwpcSkipButton}"
Command="{Binding SkipCommand}" />
<Button Content="{Binding Source={StaticResource Strings}, Path=WwpcRejectButton}"
Command="{Binding DiscardCommand}"
Foreground="{ThemeResource SystemErrorTextColor}" />
<Button Content="{Binding Source={StaticResource Strings}, Path=WwpcAcceptButton}"
Command="{Binding AcceptCommand}"
Style="{ThemeResource AccentButtonStyle}" />
</StackPanel>
</Grid>
<Grid Grid.Row="1">
<StackPanel Visibility="{Binding IsAdmin, Converter={StaticResource InvertBoolToVisibilityConverter}}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Padding="24"
Spacing="16"
MaxWidth="400">
<InfoBar IsOpen="True"
Severity="Warning"
Title="{Binding Source={StaticResource Strings}, Path=AccessDeniedTitle}"
Message="{Binding Source={StaticResource Strings}, Path=AccessDeniedMessage}"
IsClosable="False" />
</StackPanel>
<StackPanel Visibility="{Binding IsLoading, Converter={StaticResource BoolToVisibilityConverter}}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Padding="32"
Spacing="16">
<ProgressRing IsActive="True"
IsIndeterminate="True"
Height="64"
Width="64"
Foreground="{ThemeResource SystemAccentColor}" />
<TextBlock Text="{Binding Source={StaticResource Strings}, Path=LoadingText}" />
</StackPanel>
<StackPanel Visibility="{Binding HasError, Converter={StaticResource BoolToVisibilityConverter}}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Padding="24"
Spacing="16"
MaxWidth="480">
<InfoBar IsOpen="True"
Severity="Error"
Title="{Binding Source={StaticResource Strings}, Path=ErrorTitle}"
Message="{Binding ErrorMessage}"
IsClosable="False" />
</StackPanel>
<ScrollViewer Visibility="{Binding IsLoading, Converter={StaticResource InvertBoolToVisibilityConverter}}"
VerticalScrollBarVisibility="Auto">
<StackPanel Padding="16" Spacing="16">
<InfoBar IsOpen="True"
Visibility="{Binding StatusMessage, Converter={StaticResource StringToVisibilityConverter}}"
Severity="{Binding StatusIsSuccess, Converter={StaticResource BoolToInfoBarSeverityConverter}}"
Title="{Binding Source={StaticResource Strings}, Path=WwpcReviewStatusTitle}"
Message="{Binding StatusMessage}"
IsClosable="True" />
<Border Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
BorderBrush="{ThemeResource DividerStrokeColorDefaultBrush}"
BorderThickness="1"
CornerRadius="8"
Padding="16">
<StackPanel Spacing="8">
<HyperlinkButton Content="{Binding Source={StaticResource Strings}, Path=WwpcOpenSourceButton}"
Click="OpenImportSource_Click"
HorizontalAlignment="Left" />
<TextBlock TextWrapping="Wrap">
<Run Text="{Binding Source={StaticResource Strings}, Path=WwpcSectionLabel}" />
<Run Text=": " />
<Run Text="{Binding DetailProductTypeLabel}" />
<Run Text=" " />
<Run Text="{Binding Source={StaticResource Strings}, Path=CompanyLabel}" />
<Run Text=": " />
<Run Text="{Binding Detail.VendorName, TargetNullValue={StaticResource DashValue}}" />
</TextBlock>
<TextBlock TextWrapping="Wrap">
<Run Text="{Binding Source={StaticResource Strings}, Path=WwpcReleaseDateLabel}" />
<Run Text=": " />
<Run Text="{Binding Detail.ReleaseDateText, TargetNullValue={StaticResource DashValue}}" />
<Run Text=" " />
<Run Text="{Binding Source={StaticResource Strings}, Path=WwpcUserInterfaceLabel}" />
<Run Text=": " />
<Run Text="{Binding Detail.UserInterface, TargetNullValue={StaticResource DashValue}}" />
</TextBlock>
<TextBlock Text="{Binding Detail.PlatformsCsv}"
TextWrapping="Wrap"
Visibility="{Binding Detail.PlatformsCsv, Converter={StaticResource StringToVisibilityConverter}}" />
<TextBlock Text="{Binding Detail.RawCategoriesCsv}"
Foreground="{ThemeResource SystemBaseMediumColor}"
TextWrapping="Wrap"
Visibility="{Binding Detail.RawCategoriesCsv, Converter={StaticResource StringToVisibilityConverter}}" />
</StackPanel>
</Border>
<InfoBar IsOpen="{Binding HasExactMatch, Converter={StaticResource BoolToVisibilityConverter}}"
Severity="Warning"
Title="{Binding Source={StaticResource Strings}, Path=WwpcExactMatchTitle}"
Message="{Binding Source={StaticResource Strings}, Path=WwpcExactMatchMessage}" />
<Expander Header="{Binding Source={StaticResource Strings}, Path=WwpcRawDescriptionHeader}">
<TextBox Text="{Binding Detail.RawDescription}"
TextWrapping="Wrap"
AcceptsReturn="True"
IsReadOnly="True"
MinHeight="140" />
</Expander>
<Border Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
BorderBrush="{ThemeResource DividerStrokeColorDefaultBrush}"
BorderThickness="1"
CornerRadius="8"
Padding="16">
<StackPanel Spacing="12">
<TextBlock Text="{Binding Source={StaticResource Strings}, Path=WwpcMuseumDescriptionLabel}"
FontSize="16"
FontWeight="SemiBold" />
<TextBox Text="{Binding MuseumDescription, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
AcceptsReturn="True"
TextWrapping="Wrap"
MinHeight="180" />
<Grid ColumnSpacing="12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0"
Header="{Binding Source={StaticResource Strings}, Path=NameLabel}"
Text="{Binding NameOverride, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<ComboBox Grid.Column="1"
Header="{Binding Source={StaticResource Strings}, Path=TypeText}"
SelectedIndex="{Binding KindOverride, Mode=TwoWay}">
<ComboBoxItem Content="Software" />
<ComboBoxItem Content="Operating system" />
<ComboBoxItem Content="Game" />
<ComboBoxItem Content="DLC" />
<ComboBoxItem Content="System software" />
<ComboBoxItem Content="Application" />
<ComboBoxItem Content="Development software" />
<ComboBoxItem Content="Server software" />
<ComboBoxItem Content="Middleware" />
<ComboBoxItem Content="Firmware" />
<ComboBoxItem Content="Embedded software" />
</ComboBox>
</Grid>
</StackPanel>
</Border>
<Border Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
BorderBrush="{ThemeResource DividerStrokeColorDefaultBrush}"
BorderThickness="1"
CornerRadius="8"
Padding="16"
Visibility="{Binding NameMatches.Count, Converter={StaticResource CountToVisibilityConverter}}">
<StackPanel Spacing="12">
<TextBlock Text="{Binding Source={StaticResource Strings}, Path=WwpcPossibleMatchesTitle}"
FontSize="16"
FontWeight="SemiBold" />
<controls:DataGrid AutoGenerateColumns="False"
ItemsSource="{Binding NameMatches}"
IsReadOnly="True"
HeadersVisibility="Column"
GridLinesVisibility="None">
<controls:DataGrid.Columns>
<controls:DataGridTextColumn Header="{Binding Source={StaticResource Strings}, Path=NameColumn_Header}" Binding="{Binding Name}" Width="2*" />
<controls:DataGridTextColumn Header="{Binding Source={StaticResource Strings}, Path=TypeText}" Binding="{Binding KindLabel}" Width="*" />
<controls:DataGridTextColumn Header="Year" Binding="{Binding YearLabel}" Width="Auto" />
<controls:DataGridTextColumn Header="JW" Binding="{Binding ScoreLabel}" Width="Auto" />
<controls:DataGridTemplateColumn Header="{Binding Source={StaticResource Strings}, Path=ActionsColumn}" Width="Auto">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="{Binding Source={StaticResource Strings}, Path=WwpcMergeButton}"
Click="Merge_Click"
CommandParameter="{Binding}" />
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
</controls:DataGrid.Columns>
</controls:DataGrid>
<InfoBar IsOpen="True"
Visibility="{Binding MergeTargetId, Converter={StaticResource NullableToVisibilityConverter}}"
Severity="Informational"
Title="{Binding Source={StaticResource Strings}, Path=WwpcMergeModeTitle}"
Message="{Binding MergeTargetName}" />
<Button Content="{Binding Source={StaticResource Strings}, Path=WwpcSwitchBackButton}"
Command="{Binding ExitMergeModeCommand}"
Visibility="{Binding MergeTargetId, Converter={StaticResource NullableToVisibilityConverter}}" />
</StackPanel>
</Border>
<Border Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
BorderBrush="{ThemeResource DividerStrokeColorDefaultBrush}"
BorderThickness="1"
CornerRadius="8"
Padding="16">
<StackPanel Spacing="12">
<TextBlock Text="{Binding Source={StaticResource Strings}, Path=WwpcVendorSectionTitle}"
FontSize="16"
FontWeight="SemiBold" />
<TextBox Header="{Binding Source={StaticResource Strings}, Path=WwpcCompanySearchLabel}"
Text="{Binding CompanySearchText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<ComboBox Header="{Binding Source={StaticResource Strings}, Path=WwpcSelectCompanyLabel}"
ItemsSource="{Binding CompanySuggestions}"
SelectedItem="{Binding SelectedVendor, Mode=TwoWay}"
DisplayMemberPath="Name" />
<StackPanel Orientation="Horizontal" Spacing="8">
<Button Content="{Binding Source={StaticResource Strings}, Path=WwpcCreateCompanyButton}"
Click="OpenCreateCompany_Click" />
<TextBlock Text="{Binding SelectedVendor.Name}"
VerticalAlignment="Center"
Visibility="{Binding SelectedVendor.Name, Converter={StaticResource StringToVisibilityConverter}}" />
</StackPanel>
<ItemsRepeater ItemsSource="{Binding VendorMatches}"
Visibility="{Binding VendorMatches.Count, Converter={StaticResource CountToVisibilityConverter}}">
<ItemsRepeater.Layout>
<StackLayout Orientation="Horizontal" Spacing="8" />
</ItemsRepeater.Layout>
<ItemsRepeater.ItemTemplate>
<DataTemplate x:DataType="models:WwpcCompanyMatchCandidateItem">
<Button Content="{x:Bind Label}"
Click="VendorCandidate_Click"
CommandParameter="{x:Bind}" />
</DataTemplate>
</ItemsRepeater.ItemTemplate>
</ItemsRepeater>
<StackPanel Visibility="{Binding ShowCreateCompany, Converter={StaticResource BoolToVisibilityConverter}}"
Spacing="8">
<TextBox Header="{Binding Source={StaticResource Strings}, Path=WwpcNewCompanyNameLabel}"
Text="{Binding NewCompanyName, Mode=TwoWay}" />
<StackPanel Orientation="Horizontal" Spacing="8">
<Button Content="{Binding Source={StaticResource Strings}, Path=SaveButton}"
Command="{Binding CreateCompanyCommand}"
Style="{ThemeResource AccentButtonStyle}" />
<Button Content="{Binding Source={StaticResource Strings}, Path=CancelButton}"
Click="CancelCreateCompany_Click" />
</StackPanel>
</StackPanel>
</StackPanel>
</Border>
<Border Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
BorderBrush="{ThemeResource DividerStrokeColorDefaultBrush}"
BorderThickness="1"
CornerRadius="8"
Padding="16">
<StackPanel Spacing="12">
<TextBlock Text="{Binding Source={StaticResource Strings}, Path=WwpcGenresSectionTitle}"
FontSize="16"
FontWeight="SemiBold" />
<ItemsRepeater ItemsSource="{Binding SelectedGenres}"
Visibility="{Binding SelectedGenres.Count, Converter={StaticResource CountToVisibilityConverter}}">
<ItemsRepeater.Layout>
<StackLayout Orientation="Horizontal" Spacing="8" />
</ItemsRepeater.Layout>
<ItemsRepeater.ItemTemplate>
<DataTemplate x:DataType="models:WwpcGenreChipItem">
<StackPanel Orientation="Horizontal" Spacing="4">
<TextBlock Text="{x:Bind Name}" VerticalAlignment="Center" />
<Button Content="x"
Click="RemoveGenre_Click"
CommandParameter="{x:Bind}"
Style="{ThemeResource TextBlockButtonStyle}" />
</StackPanel>
</DataTemplate>
</ItemsRepeater.ItemTemplate>
</ItemsRepeater>
<TextBox Header="{Binding Source={StaticResource Strings}, Path=WwpcGenreSearchLabel}"
Text="{Binding GenreSearchText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<ComboBox Header="{Binding Source={StaticResource Strings}, Path=WwpcSelectGenreLabel}"
ItemsSource="{Binding GenreSuggestions}"
SelectedItem="{Binding SelectedGenreToAdd, Mode=TwoWay}"
DisplayMemberPath="Name" />
<Button Content="{Binding Source={StaticResource Strings}, Path=WwpcAddGenreButton}"
Click="AddGenre_Click"
HorizontalAlignment="Left" />
</StackPanel>
</Border>
<Border Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
BorderBrush="{ThemeResource DividerStrokeColorDefaultBrush}"
BorderThickness="1"
CornerRadius="8"
Padding="16">
<StackPanel Spacing="12">
<StackPanel Orientation="Horizontal" Spacing="8">
<TextBlock Text="{Binding Source={StaticResource Strings}, Path=WwpcVersionsSectionTitle}"
FontSize="16"
FontWeight="SemiBold"
VerticalAlignment="Center" />
<Button Content="{Binding Source={StaticResource Strings}, Path=WwpcEnableAllButton}"
Command="{Binding EnableAllVersionsCommand}" />
<Button Content="{Binding Source={StaticResource Strings}, Path=WwpcDisableAllButton}"
Command="{Binding DisableAllVersionsCommand}" />
</StackPanel>
<controls:DataGrid AutoGenerateColumns="False"
ItemsSource="{Binding VersionDecisions}"
HeadersVisibility="Column"
GridLinesVisibility="None">
<controls:DataGrid.Columns>
<controls:DataGridTemplateColumn Header="{Binding Source={StaticResource Strings}, Path=WwpcIncludeColumn}" Width="Auto">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Include, Mode=TwoWay}" />
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
<controls:DataGridTextColumn Header="{Binding Source={StaticResource Strings}, Path=WwpcMajorReleaseColumn}" Binding="{Binding MajorRelease}" Width="*" />
<controls:DataGridTemplateColumn Header="{Binding Source={StaticResource Strings}, Path=WwpcVersionOverrideColumn}" Width="2*">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding VersionStringOverride, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
<controls:DataGridTextColumn Header="{Binding Source={StaticResource Strings}, Path=LanguageLabel}" Binding="{Binding Language}" Width="*" />
<controls:DataGridTextColumn Header="{Binding Source={StaticResource Strings}, Path=WwpcArchitectureColumn}" Binding="{Binding Architecture}" Width="*" />
<controls:DataGridTextColumn Header="{Binding Source={StaticResource Strings}, Path=WwpcMediaColumn}" Binding="{Binding MediaKind}" Width="*" />
<controls:DataGridTemplateColumn Header="{Binding Source={StaticResource Strings}, Path=WwpcExistingVersionColumn}" Width="2*">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding DataContext.ExistingVersionChoices, ElementName=PageRoot}"
SelectedItem="{Binding LinkedExistingVersion, Mode=TwoWay}"
DisplayMemberPath="VersionString"
Visibility="{Binding DataContext.MergeTargetId, ElementName=PageRoot, Converter={StaticResource NullableToVisibilityConverter}}" />
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
</controls:DataGrid.Columns>
</controls:DataGrid>
</StackPanel>
</Border>
<Border Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
BorderBrush="{ThemeResource DividerStrokeColorDefaultBrush}"
BorderThickness="1"
CornerRadius="8"
Padding="16">
<StackPanel Spacing="12">
<StackPanel Orientation="Horizontal" Spacing="8">
<TextBlock Text="{Binding Source={StaticResource Strings}, Path=WwpcScreenshotsSectionTitle}"
FontSize="16"
FontWeight="SemiBold"
VerticalAlignment="Center" />
<Button Content="{Binding Source={StaticResource Strings}, Path=WwpcEnableAllButton}"
Command="{Binding EnableAllScreenshotsCommand}" />
<Button Content="{Binding Source={StaticResource Strings}, Path=WwpcDisableAllButton}"
Command="{Binding DisableAllScreenshotsCommand}" />
</StackPanel>
<TextBox Header="{Binding Source={StaticResource Strings}, Path=WwpcPlatformSearchLabel}"
Text="{Binding PlatformSearchText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<ComboBox Header="{Binding Source={StaticResource Strings}, Path=WwpcBulkPlatformLabel}"
ItemsSource="{Binding PlatformSuggestions}"
SelectedItem="{Binding BulkPlatform, Mode=TwoWay}"
DisplayMemberPath="Name" />
<Button Content="{Binding Source={StaticResource Strings}, Path=WwpcApplyBulkPlatformButton}"
Command="{Binding ApplyBulkPlatformCommand}"
HorizontalAlignment="Left" />
<controls:DataGrid AutoGenerateColumns="False"
ItemsSource="{Binding ScreenshotDecisions}"
HeadersVisibility="Column"
GridLinesVisibility="None">
<controls:DataGrid.Columns>
<controls:DataGridTemplateColumn Header="{Binding Source={StaticResource Strings}, Path=WwpcIncludeColumn}" Width="Auto">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Include, Mode=TwoWay}" />
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
<controls:DataGridTextColumn Header="{Binding Source={StaticResource Strings}, Path=WwpcMajorReleaseColumn}" Binding="{Binding MajorRelease}" Width="*" />
<controls:DataGridTemplateColumn Header="Thumbnail" Width="Auto">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid Width="160" Height="90">
<Border Background="{ThemeResource ControlFillColorSecondaryBrush}"
BorderBrush="{ThemeResource DividerStrokeColorDefaultBrush}"
BorderThickness="1"
CornerRadius="6">
<Image Source="{Binding ThumbnailUrl}"
Stretch="UniformToFill"
Visibility="{Binding HasThumbnail, Converter={StaticResource BoolToVisibilityConverter}}" />
</Border>
<TextBlock Text="{Binding Source={StaticResource Strings}, Path=SoftwareScreenshotsPreviewUnavailable}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
TextAlignment="Center"
TextWrapping="Wrap"
Margin="8"
Foreground="{ThemeResource SystemBaseMediumColor}"
Visibility="{Binding HasThumbnail, Converter={StaticResource InvertBoolToVisibilityConverter}}" />
</Grid>
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
<controls:DataGridTemplateColumn Header="{Binding Source={StaticResource Strings}, Path=CaptionLabel}" Width="2*">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding CaptionOverride, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
<controls:DataGridTemplateColumn Header="{Binding Source={StaticResource Strings}, Path=PlatformLabel}" Width="2*">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding DataContext.PlatformSuggestions, ElementName=PageRoot}"
SelectedItem="{Binding Platform, Mode=TwoWay}"
DisplayMemberPath="Name" />
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
<controls:DataGridTemplateColumn Header="{Binding Source={StaticResource Strings}, Path=VersionLabel}" Width="2*">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding DataContext.VersionDecisions, ElementName=PageRoot}"
SelectedItem="{Binding LinkedVersion, Mode=TwoWay}"
DisplayMemberPath="DisplayLabel" />
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
<controls:DataGridTemplateColumn Header="{Binding Source={StaticResource Strings}, Path=WwpcSourceColumn}" Width="Auto">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<HyperlinkButton Content="{Binding Source={StaticResource Strings}, Path=WwpcOpenSourceButton}"
Click="OpenScreenshotSource_Click"
CommandParameter="{Binding}" />
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
</controls:DataGrid.Columns>
</controls:DataGrid>
</StackPanel>
</Border>
</StackPanel>
</ScrollViewer>
</Grid>
</Grid>
</Page>