<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:viewModel="clr-namespace:HashingTool.ViewModel" xmlns:views="clr-namespace:HashingTool.Views" xmlns:helper="clr-namespace:HashingTool.Helper" xmlns:userControl="clr-namespace:HashingTool.ViewModel.UserControl" x:Class="HashingTool.Views.VerifyResults" mc:Ignorable="d"> <UserControl.DataContext> <viewModel:VerifyResultDataViewModel /> </UserControl.DataContext> <UserControl.Resources> <helper:CollectionConverter x:Key="CollectionConverter" /> <DataTemplate x:Key="ExpanderHeader" DataType="userControl:VectoXMLFile"> <DockPanel HorizontalAlignment="Stretch" VerticalAlignment="top" MinWidth="450"> <TextBlock DockPanel.Dock="Top" Text="{Binding Name}" FontWeight="Bold" /> <ContentControl DockPanel.Dock="Right" Width="35" Height="35" Margin="10,-10,10,0"> <ContentControl.LayoutTransform> <ScaleTransform ScaleX=".4" ScaleY=".4" /> </ContentControl.LayoutTransform> <ContentControl.Style> <Style TargetType="ContentControl"> <Setter Property="Content" Value="" /> <Style.Triggers> <DataTrigger Binding="{Binding FileIntegrityValid}" Value="True"> <Setter Property="ContentTemplate" Value="{StaticResource Icon_OK}" /> </DataTrigger> <DataTrigger Binding="{Binding FileIntegrityValid}" Value="False"> <Setter Property="ContentTemplate" Value="{StaticResource Icon_NOK}" /> </DataTrigger> </Style.Triggers> </Style> </ContentControl.Style> </ContentControl> <views:VectoXMLFileSelector DockPanel.Dock="Left" Margin="0,0,0,0" VerticalAlignment="Top" XMLFile="{Binding XMLFile}" Height="1" /> </DockPanel> </DataTemplate> <DataTemplate x:Key="ExpanderHeaderJobFile" DataType="userControl:VectoJobFile"> <DockPanel HorizontalAlignment="Stretch" VerticalAlignment="top" MinWidth="450"> <TextBlock DockPanel.Dock="Top" Text="{Binding Name}" FontWeight="Bold" /> <ContentControl DockPanel.Dock="Right" Width="35" Height="35" Margin="10,-10,10,0" ToolTip="{Binding JobValidToolTip}"> <ContentControl.LayoutTransform> <ScaleTransform ScaleX=".4" ScaleY=".4" /> </ContentControl.LayoutTransform> <ContentControl.Style> <Style TargetType="ContentControl"> <Setter Property="Content" Value="" /> <Style.Triggers> <DataTrigger Binding="{Binding JobDataValid}" Value="True"> <Setter Property="ContentTemplate" Value="{StaticResource Icon_OK}" /> </DataTrigger> <DataTrigger Binding="{Binding JobDataValid}" Value="False"> <Setter Property="ContentTemplate" Value="{StaticResource Icon_NOK}" /> </DataTrigger> </Style.Triggers> </Style> </ContentControl.Style> </ContentControl> <views:VectoXMLFileSelector DockPanel.Dock="Left" Margin="0,0,0,0" VerticalAlignment="Top" XMLFile="{Binding XMLFile}" Height="1" /> </DockPanel> </DataTemplate> <DataTemplate x:Key="ExpanderHeaderManufacturerReport" DataType="userControl:ManufacturerReportXMLFile"> <DockPanel HorizontalAlignment="Stretch" VerticalAlignment="top" MinWidth="450"> <TextBlock DockPanel.Dock="Top" Text="{Binding Name}" FontWeight="Bold" /> <ContentControl DockPanel.Dock="Right" Width="35" Height="35" Margin="10,-10,10,0" ToolTip="{Binding FileIntegrityTooltip}"> <ContentControl.LayoutTransform> <ScaleTransform ScaleX=".4" ScaleY=".4" /> </ContentControl.LayoutTransform> <ContentControl.Style> <Style TargetType="ContentControl"> <Setter Property="Content" Value="" /> <Style.Triggers> <DataTrigger Binding="{Binding FileIntegrityValid}" Value="True"> <Setter Property="ContentTemplate" Value="{StaticResource Icon_OK}" /> </DataTrigger> <DataTrigger Binding="{Binding FileIntegrityValid}" Value="False"> <Setter Property="ContentTemplate" Value="{StaticResource Icon_NOK}" /> </DataTrigger> </Style.Triggers> </Style> </ContentControl.Style> </ContentControl> <views:VectoXMLFileSelector DockPanel.Dock="Left" Margin="0,0,0,0" VerticalAlignment="Top" XMLFile="{Binding XMLFile}" Height="1" /> </DockPanel> </DataTemplate> <DataTemplate x:Key="ExpanderContentJobFile" DataType="userControl:VectoJobFile"> <Grid Grid.IsSharedSizeScope="True"> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" SharedSizeGroup="LabelsShareGroup" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Label Grid.Row="1" Grid.Column="0" Content="Canonicalization methods:" /> <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding CanonicalizationMethods, Mode=OneWay , Converter={StaticResource CollectionConverter}}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="2" Grid.Column="0" Content="Digest method:" /> <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding DigestMethod, Mode=OneWay}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="3" Grid.Column="0" Content="Digest Value computed:" Style="{StaticResource DigestValueLabelStyle}" /> <TextBox Grid.Row="3" Grid.Column="1" Text="{Binding DigestValueComputed}" Margin="10,2" IsReadOnly="True" Style="{StaticResource DigestValueTextboxStyle}" /> <!--<Expander Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Margin="4" Header="Components">--> <GroupBox Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="2" Header="Vehicle Components" Style="{DynamicResource CustomGroupboxStyle}"> <Grid IsSharedSizeScope="True" Margin="10,10,0,0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" SharedSizeGroup="ComponentLabel" /> <ColumnDefinition Width="Auto" SharedSizeGroup="certificationNbrLabel" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" SharedSizeGroup="dateLabel" /> <ColumnDefinition Width="Auto" SharedSizeGroup="dateField" MinWidth="150" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Label Grid.Row="0" Grid.Column="0" Content="Vehicle" FontWeight="Bold" Margin="0,0,10,0" /> <Label Grid.Row="0" Grid.Column="1" Content="VIN:" /> <TextBox Grid.Row="0" Grid.Column="2" Text="{Binding VehicleIdentificationNumber, Mode=OneWay}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="0" Grid.Column="3" Content="Date:" /> <TextBox Grid.Row="0" Grid.Column="4" Text="{helper:CultureAwareBinding Path=JobCreationDate, StringFormat='g', Mode=OneWay}" Margin="10,2" IsReadOnly="True" /> <ItemsControl Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="5" DockPanel.Dock="Bottom" ItemsSource="{Binding Components}" Margin="0,5,0,0"> <ItemsControl.ItemTemplate> <DataTemplate> <Grid Margin="0, 5"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" SharedSizeGroup="ComponentLabel" /> <ColumnDefinition Width="Auto" SharedSizeGroup="certificationNbrLabel" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" SharedSizeGroup="dateLabel" /> <ColumnDefinition Width="Auto" SharedSizeGroup="dateField" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Label Grid.Row="0" Grid.Column="0" Content="{Binding Component}" FontWeight="Bold" Margin="0,0,10,0" /> <Label Grid.Row="0" Grid.Column="1" Content="Certification Number:" /> <TextBox Grid.Row="0" Grid.Column="2" Text="{Binding CertificationNumber}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="0" Grid.Column="3" Content="Date:" /> <TextBox Grid.Row="0" Grid.Column="4" Text="{helper:CultureAwareBinding Path=CertificationDate, StringFormat='g'}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="1" Grid.Column="1" Content="Digest Value:" /> <TextBox Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="3" Text="{Binding DigestValueRead}" Margin="10,2"> <TextBox.Style> <Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}"> <Style.Triggers> <DataTrigger Binding="{Binding Valid}" Value="True"> <Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" /> </DataTrigger> <DataTrigger Binding="{Binding Valid}" Value="False"> <Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" /> <Setter Property="ToolTip"> <Setter.Value> <TextBlock Text="{Binding DigestValueComputed, StringFormat='{}Computed digest value: {0}'}" /> </Setter.Value> </Setter> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> </Grid> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> <!--</Expander>--> </Grid> </GroupBox> </Grid> </DataTemplate> <DataTemplate x:Key="ExpanderContentCustomerReport" DataType="userControl:CustomerReportXMLFile"> <Grid Grid.IsSharedSizeScope="True"> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" SharedSizeGroup="LabelsShareGroup"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Label Grid.Row="0" Grid.Column="0" Content="VIN:" Margin="8,0,0,0"/> <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding ReportVIN, Mode=OneWay}" Margin="16,2,16,2" IsReadOnly="True" /> <GroupBox Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Header="Report Integrity" Margin="0,0,0,5" Style="{DynamicResource CustomGroupboxStyle}"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" SharedSizeGroup="LabelsShareGroup" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Label Grid.Row="0" Grid.Column="0" Content="Creation Date:" /> <TextBox Grid.Row="0" Grid.Column="1" Text="{helper:CultureAwareBinding Path=Date, StringFormat='g'}" Margin="10,2" MinWidth="150" /> <Label Grid.Row="1" Grid.Column="0" Content="Canonicalization methods:" /> <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding CanonicalizationMethods, Mode=OneWay , Converter={StaticResource CollectionConverter}}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="2" Grid.Column="0" Content="Digest method:" /> <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding DigestMethod, Mode=OneWay}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="3" Grid.Column="0" Content="Digest Value read:" Style="{StaticResource DigestValueLabelStyle}" /> <TextBox Grid.Row="3" Grid.Column="1" Text="{Binding DigestValueRead}" Margin="10,2" IsReadOnly="True"> <TextBox.Style> <Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}"> <Style.Triggers> <DataTrigger Binding="{Binding FileIntegrityValid}" Value="True"> <Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" /> </DataTrigger> <DataTrigger Binding="{Binding FileIntegrityValid}" Value="False"> <Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" /> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> <Label Grid.Row="4" Grid.Column="0" Content="Digest Value computed:" Style="{StaticResource DigestValueLabelStyle}" /> <TextBox Grid.Row="4" Grid.Column="1" Text="{Binding DigestValueComputed}" Margin="10,2" IsReadOnly="True"> <TextBox.Style> <Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}"> <Style.Triggers> <DataTrigger Binding="{Binding FileIntegrityValid}" Value="True"> <Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" /> </DataTrigger> <DataTrigger Binding="{Binding FileIntegrityValid}" Value="False"> <Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" /> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> </Grid> </GroupBox> <GroupBox Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Header="Manufacturer Report Integrity" Style="{DynamicResource CustomGroupboxStyle}"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" SharedSizeGroup="LabelsShareGroup" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Label Grid.Row="0" Grid.Column="0" Content="CanonicalizationMethod:" /> <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding ManufacturerReportCanonicalizationMethodRead, Mode=OneWay, Converter={StaticResource CollectionConverter}}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="1" Grid.Column="0" Content="Digest Method:" /> <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding ManufacturerReportDigestMethodRead, Mode=OneWay}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="2" Grid.Column="0" Content="Digest Value Read:" Style="{StaticResource DigestValueLabelStyle}" /> <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding ManufacturerReportDigestValueRead, Mode=OneWay}" Margin="10,2" IsReadOnly="True"> <TextBox.Style> <Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}"> <Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" /> <Style.Triggers> <DataTrigger Binding="{Binding ManufacturerReportMatchesReport}" Value="True"> <Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" /> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> <Label Grid.Row="3" Grid.Column="0" Content="Digest Value Computed:" Style="{StaticResource DigestValueLabelStyle}" /> <TextBox Grid.Row="3" Grid.Column="1" Text="{Binding ManufacturerReportDigestValueComputed, Mode=OneWay}" Margin="10,2" IsReadOnly="True"> <TextBox.Style> <Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}"> <Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" /> <Style.Triggers> <DataTrigger Binding="{Binding ManufacturerReportMatchesReport}" Value="True"> <Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" /> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> </Grid> </GroupBox> <GroupBox Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Header="Job Integrity" Style="{DynamicResource CustomGroupboxStyle}"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" SharedSizeGroup="LabelsShareGroup" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Label Grid.Row="0" Grid.Column="0" Content="Job CanonicalizationMethod:" /> <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding JobCanonicalizationMethodRead, Mode=OneWay, Converter={StaticResource CollectionConverter}}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="1" Grid.Column="0" Content="Job Digest Method:" /> <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding JobDigestMethodRead, Mode=OneWay}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="2" Grid.Column="0" Content="Job Digest Value Read:" Style="{StaticResource DigestValueLabelStyle}" /> <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding JobDigestValueRead, Mode=OneWay}" Margin="10,2" IsReadOnly="True"> <TextBox.Style> <Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}"> <Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" /> <Style.Triggers> <DataTrigger Binding="{Binding JobDigestMatchesReport}" Value="True"> <Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" /> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> <Label Grid.Row="3" Grid.Column="0" Content="Job Digest Value Computed:" Style="{StaticResource DigestValueLabelStyle}" /> <TextBox Grid.Row="3" Grid.Column="1" Text="{Binding JobDigestValueComputed, Mode=OneWay}" Margin="10,2" IsReadOnly="True"> <TextBox.Style> <Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}"> <Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" /> <Style.Triggers> <DataTrigger Binding="{Binding JobDigestMatchesReport}" Value="True"> <Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" /> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> </Grid> </GroupBox> </Grid> </DataTemplate> <DataTemplate x:Key="ExpanderContentManufacturerReport" DataType="userControl:ManufacturerReportXMLFile"> <Grid Grid.IsSharedSizeScope="True"> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <GroupBox Grid.Row="2" Header="Report Integrity" Margin="0,0,0,5" Style="{DynamicResource CustomGroupboxStyle}"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" SharedSizeGroup="LabelsShareGroup" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Label Grid.Row="0" Grid.Column="0" Content="Creation Date:" /> <TextBox Grid.Row="0" Grid.Column="1" Text="{helper:CultureAwareBinding Path=Date, StringFormat='g'}" Margin="10,2" MinWidth="150" /> <Label Grid.Row="1" Grid.Column="0" Content="Canonicalization methods:" /> <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding CanonicalizationMethods, Mode=OneWay , Converter={StaticResource CollectionConverter}}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="2" Grid.Column="0" Content="Digest method:" /> <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding DigestMethod, Mode=OneWay}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="3" Grid.Column="0" Content="Digest Value read:" Style="{StaticResource DigestValueLabelStyle}" /> <TextBox Grid.Row="3" Grid.Column="1" Text="{Binding DigestValueRead}" Margin="10,2" IsReadOnly="True"> <TextBox.Style> <Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}"> <Style.Triggers> <DataTrigger Binding="{Binding FileIntegrityValid}" Value="True"> <Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" /> </DataTrigger> <DataTrigger Binding="{Binding FileIntegrityValid}" Value="False"> <Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" /> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> <Label Grid.Row="4" Grid.Column="0" Content="Digest Value computed:" Style="{StaticResource DigestValueLabelStyle}" /> <TextBox Grid.Row="4" Grid.Column="1" Text="{Binding DigestValueComputed}" Margin="10,2" IsReadOnly="True"> <TextBox.Style> <Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}"> <Style.Triggers> <DataTrigger Binding="{Binding FileIntegrityValid}" Value="True"> <Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" /> </DataTrigger> <DataTrigger Binding="{Binding FileIntegrityValid}" Value="False"> <Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" /> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> </Grid> </GroupBox> <GroupBox Grid.Row="3" Header="Job Integrity" Style="{DynamicResource CustomGroupboxStyle}"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" SharedSizeGroup="LabelsShareGroup" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Label Grid.Row="0" Grid.Column="0" Content="Job CanonicalizationMethod:" /> <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding JobCanonicalizationMethodRead, Mode=OneWay, Converter={StaticResource CollectionConverter}}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="1" Grid.Column="0" Content="Job Digest Method:" /> <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding JobDigestMethodRead, Mode=OneWay}" Margin="10,2" IsReadOnly="True" /> <Label Grid.Row="2" Grid.Column="0" Content="Job Digest Value Read:" Style="{StaticResource DigestValueLabelStyle}" /> <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding JobDigestValueRead, Mode=OneWay}" Margin="10,2" IsReadOnly="True"> <TextBox.Style> <Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}"> <Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" /> <Style.Triggers> <DataTrigger Binding="{Binding JobDigestMatchesReport}" Value="True"> <Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" /> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> <Label Grid.Row="3" Grid.Column="0" Content="Job Digest Value Computed:" Style="{StaticResource DigestValueLabelStyle}" /> <TextBox Grid.Row="3" Grid.Column="1" Text="{Binding JobDigestValueComputed, Mode=OneWay}" Margin="10,2" IsReadOnly="True"> <TextBox.Style> <Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}"> <Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" /> <Style.Triggers> <DataTrigger Binding="{Binding JobDigestMatchesReport}" Value="True"> <Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" /> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> </Grid> </GroupBox> <GroupBox Grid.Row="4" Header="Vehicle Components" Style="{DynamicResource CustomGroupboxStyle}"> <Grid Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="2" IsSharedSizeScope="True" Margin="10,10,0,0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" SharedSizeGroup="ComponentLabel" /> <ColumnDefinition Width="Auto" SharedSizeGroup="certificationNbrLabel" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" SharedSizeGroup="dateLabel" /> <ColumnDefinition Width="Auto" SharedSizeGroup="dateField" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Label Grid.Row="0" Grid.Column="0" Content="Vehicle" FontWeight="Bold" Margin="0,0,10,0" /> <Label Grid.Row="0" Grid.Column="1" Content="VIN:" /> <TextBox Grid.Row="0" Grid.Column="2" Text="{Binding ReportVIN, Mode=OneWay}" Margin="10,2" IsReadOnly="True" /> <ItemsControl Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="5" DockPanel.Dock="Bottom" ItemsSource="{Binding Components}" Margin="0,5,0,0"> <ItemsControl.ItemTemplate> <DataTemplate> <Grid Margin="0,5"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" SharedSizeGroup="ComponentLabel" /> <ColumnDefinition Width="Auto" SharedSizeGroup="certificationNbrLabel" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Label Grid.Row="0" Grid.Column="0" Content="{Binding Component}" FontWeight="Bold" Margin="0,0,10,0" /> <Label Grid.Row="0" Grid.Column="1" Content="Certification Number:" /> <TextBox Grid.Row="0" Grid.Column="2" Text="{Binding CertificationNumber}" Margin="10,2" IsReadOnly="True"> <TextBox.Style> <Style TargetType="TextBox"> <Setter Property="IsEnabled" Value="True" /> <Style.Triggers> <DataTrigger Binding="{Binding CertificationMethod}" Value="Standard values"> <Setter Property="IsEnabled" Value="False" /> </DataTrigger> <DataTrigger Binding="{Binding CertificationNumberMatchesJobComponent}" Value="False"> <Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" /> <Setter Property="ToolTip"> <Setter.Value> <TextBlock Text="{Binding CertificationNumberExpected, StringFormat='{}Expected Certification Number: {0}'}" /> </Setter.Value> </Setter> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> <Label Grid.Row="1" Grid.Column="1" Content="Digest Value:" /> <TextBox Grid.Row="1" Grid.Column="2" Text="{Binding DigestValue}" Margin="10,2"> <TextBox.Style> <Style TargetType="TextBox" BasedOn="{StaticResource DigestValueTextboxStyle}"> <Style.Triggers> <DataTrigger Binding="{Binding DigestValueMatchesJobComponent}" Value="True"> <Setter Property="Foreground" Value="{StaticResource Color.SuccessGreen}" /> </DataTrigger> <DataTrigger Binding="{Binding DigestValueMatchesJobComponent}" Value="False"> <Setter Property="Foreground" Value="{StaticResource Color.ErrorRed}" /> <Setter Property="ToolTip"> <Setter.Value> <TextBlock Text="{Binding DigestValueExpected, StringFormat='{}Expected Digest Value: {0}'}" /> </Setter.Value> </Setter> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> </Grid> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> <!--</Expander>--> </Grid> </GroupBox> </Grid> </DataTemplate> <BorderGapMaskConverter x:Key="BorderGapMaskConverter" /> <Style x:Key="CustomGroupboxStyle" TargetType="{x:Type GroupBox}"> <Setter Property="BorderBrush" Value="#D5DFE5" /> <Setter Property="BorderThickness" Value="1" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type GroupBox}"> <Grid SnapsToDevicePixels="true"> <Grid.ColumnDefinitions> <ColumnDefinition Width="6" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="6" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="6" /> </Grid.RowDefinitions> <Border BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.ColumnSpan="4" Grid.Column="0" CornerRadius="4" Grid.Row="1" Grid.RowSpan="3" /> <Border BorderBrush="White" BorderThickness="{TemplateBinding BorderThickness}" Grid.Column="0" Grid.ColumnSpan="4" CornerRadius="2" Grid.Row="1" Grid.RowSpan="3"> <Border.OpacityMask> <MultiBinding ConverterParameter="7" Converter="{StaticResource BorderGapMaskConverter}"> <Binding ElementName="Header" Path="ActualWidth" /> <Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" /> <Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" /> </MultiBinding> </Border.OpacityMask> </Border> <Border x:Name="Header" Grid.Column="1" Padding="3,1,3,0" Grid.Row="0" Grid.RowSpan="2"> <ContentPresenter ContentSource="Header" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> </Border> <ContentPresenter Grid.ColumnSpan="2" Grid.Column="1" Margin="{TemplateBinding Padding}" Grid.Row="2" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </UserControl.Resources> <DockPanel> <DockPanel DockPanel.Dock="Bottom" Margin="10,0,0,5"> <Label DockPanel.Dock="Left"> <Label.Content> <TextBlock Text="{Binding ErrorCount, StringFormat='{}{0} Warnings/Errors'}" /> </Label.Content> <Label.Style> <Style TargetType="Label"> <Setter Property="Foreground" Value="Red" /> <Style.Triggers> <DataTrigger Binding="{Binding ErrorCount}" Value="0"> <Setter Property="Foreground" Value="Black" /> </DataTrigger> </Style.Triggers> </Style> </Label.Style> </Label> <Button DockPanel.Dock="Left" Margin="10,0,0,0" Content="Details..." HorizontalAlignment="Center" Width="91" Height="22" Click="Button_Click_1"> <Button.Style> <Style TargetType="Button"> <Setter Property="IsEnabled" Value="True" /> <Style.Triggers> <DataTrigger Binding="{Binding ErrorCount}" Value="0"> <Setter Property="IsEnabled" Value="False" /> </DataTrigger> </Style.Triggers> </Style> </Button.Style> </Button> <Button DockPanel.Dock="Bottom" x:Name="btnBack" Content="Back" Command="{Binding ShowHomeViewCommand}" Margin="0,0,10,0" HorizontalAlignment="Right" Width="75" Height="22" /> </DockPanel> <Label DockPanel.Dock="Top" x:Name="lblHeader" HorizontalAlignment="Center" Margin="0" VerticalAlignment="Top" Content="{Binding Name}" FontWeight="Bold" FontSize="18" /> <Grid Margin="0,0,0,0" HorizontalAlignment="Stretch"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <ScrollViewer Grid.Row="0" VerticalScrollBarVisibility="Auto" HorizontalAlignment="Stretch" Margin="10,0,10,10" Background="{x:Static SystemColors.ControlLightBrush}" Grid.IsSharedSizeScope="True"> <ItemsControl ItemsSource="{Binding Files}" Name="lstInput" Margin="3"> <ItemsControl.ItemContainerStyle> <Style> <Setter Property="FrameworkElement.Margin" Value="0,2" /> </Style> </ItemsControl.ItemContainerStyle> <ItemsControl.Resources> <DataTemplate DataType="{x:Type userControl:VectoJobFile}"> <Border BorderBrush="White" BorderThickness="1" CornerRadius="2" Margin="0,0,3,0"> <Expander Margin="2" Header="{Binding}" HorizontalAlignment="Stretch" Style="{DynamicResource HeaderStretchExpanderStyle}" HeaderTemplate="{DynamicResource ExpanderHeaderJobFile}" ContentTemplate="{DynamicResource ExpanderContentJobFile}" Content="{Binding}" /> </Border> </DataTemplate> <DataTemplate DataType="{x:Type userControl:ReportXMLFile}"> <Border BorderBrush="White" BorderThickness="1" CornerRadius="2" Margin="0,0,3,0"> <Expander Margin="2" Header="{Binding}" HorizontalAlignment="Stretch" Style="{DynamicResource HeaderStretchExpanderStyle}" HeaderTemplate="{DynamicResource ExpanderHeader}" ContentTemplate="{DynamicResource ExpanderContentCustomerReport}" Content="{Binding}" /> </Border> </DataTemplate> <DataTemplate DataType="{x:Type userControl:ManufacturerReportXMLFile}"> <Border BorderBrush="White" BorderThickness="1" CornerRadius="2" Margin="0,0,3,0"> <Expander Margin="2" Header="{Binding}" HorizontalAlignment="Stretch" Style="{DynamicResource HeaderStretchExpanderStyle}" HeaderTemplate="{DynamicResource ExpanderHeaderManufacturerReport}" ContentTemplate="{DynamicResource ExpanderContentManufacturerReport}" Content="{Binding}" /> </Border> </DataTemplate> </ItemsControl.Resources> </ItemsControl> </ScrollViewer> <Grid Grid.Row="1" Margin="10,3,10,5" HorizontalAlignment="Center"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="50" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="50" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" TextAlignment="Center" Margin="5" FontSize="14" FontWeight="Bold"> Job-File valid </TextBlock> <ContentControl Grid.Row="1" Grid.Column="0" Width="50" Height="50" Margin="10,10,10,0"> <ContentControl.LayoutTransform> <ScaleTransform ScaleX="1.5" ScaleY="1.5" /> </ContentControl.LayoutTransform> <ContentControl.Style> <Style TargetType="ContentControl"> <Setter Property="ContentTemplate" Value="{StaticResource Icon_NOK}" /> <Style.Triggers> <DataTrigger Binding="{Binding JobFile.JobDataValid}" Value="True"> <Setter Property="ContentTemplate" Value="{StaticResource Icon_OK}" /> </DataTrigger> </Style.Triggers> </Style> </ContentControl.Style> </ContentControl> <TextBlock Grid.Row="0" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center" TextAlignment="Center" Margin="5" FontSize="14" FontWeight="Bold"> Job-Data matches<LineBreak /> Manufacturer Report </TextBlock> <ContentControl Grid.Row="1" Grid.Column="2" Width="50" Height="50" Margin="10,10,10,0"> <ContentControl.LayoutTransform> <ScaleTransform ScaleX="1.5" ScaleY="1.5" /> </ContentControl.LayoutTransform> <ContentControl.Style> <Style TargetType="ContentControl"> <Setter Property="ContentTemplate" Value="{StaticResource Icon_NOK}" /> <Style.Triggers> <DataTrigger Binding="{Binding ManufacturerReport.ManufacturerReportValid}" Value="True"> <Setter Property="ContentTemplate" Value="{StaticResource Icon_OK}" /> </DataTrigger> </Style.Triggers> </Style> </ContentControl.Style> </ContentControl> <TextBlock Grid.Row="0" Grid.Column="4" HorizontalAlignment="Center" VerticalAlignment="Center" TextAlignment="Center" Margin="5" FontSize="14" FontWeight="Bold"> Manufacturer Report<LineBreak/> matches<LineBreak /> Customer Report </TextBlock> <ContentControl Grid.Row="1" Grid.Column="4" Width="50" Height="50" Margin="10,10,10,0"> <ContentControl.LayoutTransform> <ScaleTransform ScaleX="1.5" ScaleY="1.5" /> </ContentControl.LayoutTransform> <ContentControl.Style> <Style TargetType="ContentControl"> <Setter Property="ContentTemplate" Value="{StaticResource Icon_NOK}" /> <Style.Triggers> <DataTrigger Binding="{Binding CustomerReport.ManufacturerReportMatchesReport}" Value="True"> <Setter Property="ContentTemplate" Value="{StaticResource Icon_OK}" /> </DataTrigger> </Style.Triggers> </Style> </ContentControl.Style> </ContentControl> </Grid> </Grid> </DockPanel> </UserControl>