Files
DP44/DataPRO/Modules/Channels/ChannelCodes/View/ChannelCodesListView.xaml
2026-04-17 14:55:32 -04:00

157 lines
14 KiB
XML

<base:BaseView x:Class="ChannelCodes.ChannelCodesListView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:base="clr-namespace:DTS.Common.Base;assembly=DTS.Common"
xmlns:converters="clr-namespace:DTS.Common.Converters;assembly=DTS.Common"
xmlns:controls="clr-namespace:DTS.Common.Controls;assembly=DTS.Common"
xmlns:behaviors="clr-namespace:DTS.Common.Behaviors;assembly=DTS.Common"
xmlns:strings="clr-namespace:ChannelCodes"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="768" d:DesignWidth="1366"
x:Name="ChannelListView">
<base:BaseView.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Themes/CommonStyles.xaml"/>
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Controls/combobox.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="ListView">
<Setter Property="ItemContainerStyle" Value="{StaticResource TTS_ListViewItemStyle}"/>
</Style>
<Style TargetType="TextBox" BasedOn="{StaticResource TTS_TextBoxStyle}"/>
<Style TargetType="TextBlock" BasedOn="{StaticResource TTS_TextBlockStyle}"/>
<Style TargetType="CheckBox" BasedOn="{StaticResource PageContentCheckBoxStyle}" />
<Style TargetType="ComboBox" BasedOn="{StaticResource TTS_ComboBoxStyle}"/>
<Style TargetType="Button" BasedOn="{StaticResource TTS_ButtonStyle}"/>
<Style TargetType="GridViewColumnHeader" BasedOn="{StaticResource Gray_GridViewColumnHeaderStyle}"/>
<Style TargetType="RadioButton" BasedOn="{StaticResource FlatRadioButtonStyle}" >
<Setter Property="Height" Value="24" />
<Setter Property="Margin" Value="5" />
</Style>
<converters:StatusToBorderThicknessConverter x:Key="StatusToBorderThickness" />
<converters:StatusToColorConverter x:Key="StatusToColor" />
<converters:InverseBooleanConverter x:Key="InverseBooleanConverter" />
</ResourceDictionary>
</base:BaseView.Resources>
<Grid Background="{DynamicResource Brush_ApplicationContentBackground}" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Grid.Row="0">
<RadioButton GroupName="Filters" Content="{strings:TranslateExtension ISO}" Checked="ISO_Checked" IsChecked="True" AutomationProperties.AutomationId="btnChannelCodeDetailsISO"/>
<RadioButton GroupName="Filters" Content="{strings:TranslateExtension User}" Checked="User_Checked" AutomationProperties.AutomationId="btnChannelCodeDetailsUser"/>
</StackPanel>
<ListView ItemsSource="{Binding ISOChannelCodes, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1"
AutomationProperties.AutomationId="ISOChannelCodeListView" Visibility="{Binding ISOVisibility}" SelectionMode="Extended" SelectionChanged="ISOCodes_SelectionChanged"
KeyboardNavigation.TabNavigation="Continue" x:Name="ISOChannelCodesListView" PreviewMouseLeftButtonUp="ISOChannelCodesListView_PreviewMouseLeftButtonUp">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="KeyboardNavigation.IsTabStop" Value="False" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<controls:AutoSizedGridView AutomationProperties.AutomationId="ChannelCodesListGridView">
<GridViewColumn AutomationProperties.AutomationId="ChannelCodeColumn" Width="315">
<GridViewColumn.Header>
<controls:GridViewColumnHeaderSearchable Tag="ISOCode" HeaderTitle="{strings:TranslateExtension ISOCode}" Search="GridViewColumnHeaderSearchable_OnSearch"
x:Name="ISOCodeColumnHeader" ClickHandler="GridViewColumnHeader_OnClick"/>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<ItemContainerTemplate>
<controls:ChannelCodeBuilder Width="300" AutomationProperties.AutomationId="ChannelCodeTextBox" Code="{Binding Code, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
KeyDown="ChannelCodeTextBox_KeyDown" TextChanged="ChannelCodeTextBoxIso_TextChanged" CodeType="ISO"
ChannelCodeSelected="ChannelCodeBuilder_OnChannelCodeSelected"
SelectionChanged="ChannelCodeBuilder_SelectionChanged"
ChannelCodesFunc="{Binding DataContext.ChannelCodesFunc, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
ShowChannelCodeLookupHelper="{Binding DataContext.ShowChannelCodeLookupHelper, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
ShowISOStringBuilder="{Binding DataContext.ShowISOStringBuilder, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
UniqueISOCodesRequired="{Binding DataContext.UniqueISOCodesRequired, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
PasteId="ChannelCode" behaviors:TextBoxPasteBehavior.PasteCommand="{Binding PasteCommand}" Tag="ISOCode"
BorderBrush="{Binding ItemStatus, Converter={StaticResource StatusToColor}}"
BorderThickness="{Binding ItemStatus, Converter={StaticResource StatusToBorderThickness}}"
IsEnabled="{Binding DataContext.IsReadOnly, Converter={StaticResource InverseBooleanConverter}, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"/>
</ItemContainerTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn AutomationProperties.AutomationId="DisplayNameColumn" Width="315">
<GridViewColumn.Header>
<controls:GridViewColumnHeaderSearchable Tag="ISOChannelName" HeaderTitle="{strings:TranslateExtension ISOChannelName}"
Search="GridViewColumnHeaderSearchable_OnSearch" x:Name="ISOChannelNameColumnHeader"/>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<ItemContainerTemplate>
<TextBox Width="300" AutomationProperties.AutomationId="DisplayNameTextBox"
Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" KeyDown="DisplayNameTextBox_KeyDown" SelectionChanged="DisplayNameTextBoxIso_SelectionChanged" TextChanged="DisplayNameTextBoxIso_TextChanged" MaxLength="250"
behaviors:TextBoxPasteBehavior.PasteCommand="{Binding PasteCommand}" Tag="ISOChannelName"
BorderBrush="{Binding ItemStatus, Converter={StaticResource StatusToColor}}"
BorderThickness="{Binding ItemStatus, Converter={StaticResource StatusToBorderThickness}}"
IsEnabled="{Binding DataContext.IsReadOnly, Converter={StaticResource InverseBooleanConverter}, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}" />
</ItemContainerTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</controls:AutoSizedGridView>
</ListView.View>
</ListView>
<ListView ItemsSource="{Binding UserChannelCodes, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1"
AutomationProperties.AutomationId="UserChannelCodeListView" Visibility="{Binding UserVisibility}" SelectionMode="Extended" SelectionChanged="UserCodes_SelectionChanged"
KeyboardNavigation.TabNavigation="Continue" x:Name="UserChannelCodesListView" PreviewMouseLeftButtonUp="UserChannelCodesListView_PreviewMouseLeftButtonUp">
<ListView.ItemContainerStyle>
<Style>
<Setter Property="KeyboardNavigation.IsTabStop" Value="False" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<controls:AutoSizedGridView AutomationProperties.AutomationId="ChannelCodesListGridView">
<GridViewColumn AutomationProperties.AutomationId="ChannelCodeColumn" Width="315">
<GridViewColumn.Header>
<controls:GridViewColumnHeaderSearchable Tag="UserCode" HeaderTitle="{strings:TranslateExtension UserCode}" Search="GridViewColumnHeaderSearchable_OnSearch"
ListviewId="{Binding ListViewId}" x:Name="UserCodeColumnHeader" ClickHandler="GridViewColumnHeader_OnClick"/>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<ItemContainerTemplate>
<controls:ChannelCodeBuilder Width="300" AutomationProperties.AutomationId="ChannelCodeTextBox" Code="{Binding Code, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
KeyDown="ChannelCodeTextBox_KeyDown" TextChanged="ChannelCodeTextBoxUser_TextChanged" CodeType="User"
ChannelCodeSelected="ChannelCodeBuilder_OnChannelCodeSelected"
ChannelCodesFunc="{Binding DataContext.ChannelCodesFunc, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
ShowChannelCodeLookupHelper="{Binding DataContext.ShowChannelCodeLookupHelper, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
ShowISOStringBuilder="{Binding DataContext.ShowISOStringBuilder, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
UniqueISOCodesRequired="{Binding DataContext.UniqueISOCodesRequired, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
PasteId="ChannelCode" behaviors:TextBoxPasteBehavior.PasteCommand="{Binding PasteCommand}" Tag="UserCode"
BorderBrush="{Binding ItemStatus, Converter={StaticResource StatusToColor}}"
SelectionChanged="ChannelCodeTextBoxUser_SelectionChanged"
BorderThickness="{Binding ItemStatus, Converter={StaticResource StatusToBorderThickness}}"
IsEnabled="{Binding DataContext.IsReadOnly, Converter={StaticResource InverseBooleanConverter}, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}" />
</ItemContainerTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn AutomationProperties.AutomationId="DisplayNameColumn" Width="315">
<GridViewColumn.Header>
<controls:GridViewColumnHeaderSearchable Tag="UserChannelName" HeaderTitle="{strings:TranslateExtension UserChannelName}" Search="GridViewColumnHeaderSearchable_OnSearch"
ListviewId="{Binding ListViewId}" x:Name="UserChannelNameColumnHeader"/>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<ItemContainerTemplate>
<TextBox Width="300" AutomationProperties.AutomationId="DisplayNameTextBox"
Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" KeyDown="DisplayNameTextBox_KeyDown"
TextChanged="DisplayNameTextBoxUser_TextChanged" MaxLength="250"
behaviors:TextBoxPasteBehavior.PasteCommand="{Binding PasteCommand}" Tag="UserChannelName"
BorderBrush="{Binding ItemStatus, Converter={StaticResource StatusToColor}}"
BorderThickness="{Binding ItemStatus, Converter={StaticResource StatusToBorderThickness}}"
SelectionChanged="DisplayNameTextBoxUser_SelectionChanged"
IsEnabled="{Binding DataContext.IsReadOnly, Converter={StaticResource InverseBooleanConverter}, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}" />
</ItemContainerTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</controls:AutoSizedGridView>
</ListView.View>
</ListView>
</Grid>
</base:BaseView>