383 lines · 31.1 KB · Text
RawDownload
<UserControl x:Class="GSF.PhasorProtocols.UI.UserControls.InputWizardUserControl"             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"              mc:Ignorable="d" d:DesignHeight="650" d:DesignWidth="850"             xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation"             xmlns:vm="clr-namespace:GSF.PhasorProtocols.UI.ViewModels"             xmlns:tsfBinding="clr-namespace:GSF.TimeSeries.UI.Binding;assembly=GSF.TimeSeries.UI"             xmlns:tsfui="clr-namespace:GSF.TimeSeries.UI;assembly=GSF.TimeSeries.UI.WPF"             Background="Transparent" d:DataContext="{d:DesignInstance vm:InputWizardDevices}"             Loaded="InputWizardUserControl_Loaded">        <UserControl.Resources>        <ResourceDictionary>            <ResourceDictionary.MergedDictionaries>                <ResourceDictionary Source="/GSF.TimeSeries.UI.WPF;Component/Resources/CommonResource.xaml" />                <ResourceDictionary Source="/GSF.TimeSeries.UI.WPF;Component/Resources/StyleResource.xaml" />            </ResourceDictionary.MergedDictionaries>        </ResourceDictionary>    </UserControl.Resources>     <StackPanel x:Name="StackPanelRoot" Orientation="Vertical">        <StackPanel.Resources>            <CollectionViewSource Source="{Binding Path=CompanyLookupList}" x:Key="CompanyLookupList"/>            <CollectionViewSource Source="{Binding Path=HistorianLookupList}" x:Key="HistorianLookupList"/>            <CollectionViewSource Source="{Binding Path=InterconnectionLookupList}" x:Key="InterconnectionLookupList"/>            <CollectionViewSource Source="{Binding Path=ProtocolLookupList}" x:Key="ProtocolLookupList"/>            <CollectionViewSource Source="{Binding Path=VendorDeviceLookupList}" x:Key="VendorDeviceLookupList"/>        </StackPanel.Resources>                    <tsfui:TsfPopup Placement="Center" Topmost="True" IsOpen="{Binding RequestConfigurationPopupIsOpen}">            <Border Width="324" Height="200" CornerRadius="5" BorderThickness="2" Background="White" BorderBrush="Gray">                <Grid>                    <Grid.RowDefinitions>                        <RowDefinition Height="*" />                        <RowDefinition Height="Auto" />                    </Grid.RowDefinitions>                     <TextBlock Grid.Row="0" HorizontalAlignment="Stretch" Margin="20,10" FontSize="16" FontWeight="Bold" TextAlignment="Center" TextWrapping="Wrap" Text="{Binding RequestConfigurationPopupText}" />                    <Button Grid.Row="1" Content="Cancel" Margin="10" Command="{Binding CancelConfigurationRequestCommand}" />                </Grid>            </Border>        </tsfui:TsfPopup>         <StackPanel Orientation="Vertical" IsEnabled="{Binding StepsEnabled}">            <Button Width="Auto" Foreground="Blue" FontSize="18" FontWeight="Bold" Command="{Binding LaunchWalkthroughCommand}">                <Button.Template>                    <ControlTemplate TargetType="Button">                        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">                            <Image Source="/GSF.TimeSeries.UI;component/Images/Wand.png" />                            <TextBlock Text="{TemplateBinding Content}" TextDecorations="Underline" Cursor="Hand"                                               VerticalAlignment="Center" Width="Auto" Height="Auto" Foreground="{TemplateBinding Foreground}"/>                        </StackPanel>                    </ControlTemplate>                </Button.Template>                Launch Walkthrough            </Button>                        <Expander x:Name="ExpanderStep1" IsExpanded="{Binding StepOneExpanded}" Header="Step 1: Configure Connection Settings" Expanded="ExpanderStep1_Expanded">                <Grid HorizontalAlignment="Center" IsEnabled="{Binding NewDeviceConfiguration}">                    <Grid.ColumnDefinitions>                        <ColumnDefinition Width="*" />                        <ColumnDefinition Width="3*" />                    </Grid.ColumnDefinitions>                    <Grid.RowDefinitions>                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                    </Grid.RowDefinitions>                     <TextBlock Grid.Row="0" Grid.Column="1" Text="Select PMU Connection File (from PMU Connection Tester)" HorizontalAlignment="Left"/>                    <TextBlock Grid.Row="1" Grid.Column="0" Text="Connection File" />                    <StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="1">                        <TextBox Text="{tsfBinding:Column Path=DataContext.ConnectionFileName, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}"                             Width="{StaticResource XXXLargeItemSize}" />                        <Button Command="{Binding Path=DataContext.BrowseConnectionFileCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}"                         ToolTip="Browse to connection file" Width="Auto">                            <Button.Template>                                <ControlTemplate>                                    <Image Source="/GSF.TimeSeries.UI;component/images/Folder.png" Height="24" Width="24" />                                </ControlTemplate>                            </Button.Template>                        </Button>                    </StackPanel>                     <TextBlock Text="OR" Grid.Row="2" Grid.Column="1" FontWeight="Bold" FontSize="{StaticResource LargeTextSize}" HorizontalAlignment="Center" />                     <TextBlock Grid.Row="3" Grid.Column="0" Text="Connection String" VerticalAlignment="Top"/>                    <StackPanel Orientation="Vertical" Grid.Row="3" Grid.Column="1">                        <StackPanel Orientation="Horizontal">                            <TextBox Text="{tsfBinding:Column Path=DataContext.ConnectionString, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=3}}"  Width="{StaticResource XXXLargeItemSize}" Height="{StaticResource XSmallItemSize}" TextWrapping="Wrap" />                            <Button Command="{Binding Path=DataContext.BuildConnectionStringCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}"                        VerticalAlignment="Top" ToolTip="Build connection string" Width="Auto">                                <Button.Template>                                    <ControlTemplate>                                        <Image Source="/GSF.TimeSeries.UI;component/images/Edit.png" Height="24" Width="24" />                                    </ControlTemplate>                                </Button.Template>                            </Button>                        </StackPanel>                        <TextBlock Text="Connection information is relative to host." FontStyle="Italic" HorizontalAlignment="Left" />                    </StackPanel>                     <TextBlock Grid.Row="4" Grid.Column="0" Text="Alternate Command Channel" TextWrapping="Wrap" VerticalAlignment="Top"/>                    <StackPanel Orientation="Horizontal" Grid.Row="4" Grid.Column="1">                        <TextBox Text="{tsfBinding:Column Path=DataContext.AlternateCommandChannel, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}"  Width="{StaticResource XXXLargeItemSize}" Height="{StaticResource XSmallItemSize}" TextWrapping="Wrap" />                        <Button Command="{Binding Path=DataContext.BuildAlternateCommandChannelCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}"                        VerticalAlignment="Top" ToolTip="Build alternate command channel" Width="Auto">                            <Button.Template>                                <ControlTemplate>                                    <Image Source="/GSF.TimeSeries.UI;component/images/Edit.png" Height="24" Width="24" />                                </ControlTemplate>                            </Button.Template>                        </Button>                    </StackPanel>                     <Border Grid.Row="5" Grid.Column="1" BorderThickness="1" Margin="2,20,2,20" BorderBrush="#FF333333" />                     <TextBlock Grid.Row="6" Grid.Column="0" Text="Device ID Code"/>                    <TextBox Text="{tsfBinding:Column Path=DataContext.AccessID, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=1}}"  Grid.Row="6" Grid.Column="1" Width="{StaticResource XXSmallItemSize}" />                     <TextBlock Grid.Row="7" Grid.Column="0" Text="Device Protocol" />                    <ComboBox Grid.Row="7" Grid.Column="1" ItemsSource="{Binding Source={StaticResource ProtocolLookupList}}" DisplayMemberPath="Value"                    SelectedItem="{tsfBinding:Column Path=ProtocolID, Converter={StaticResource DictionaryToKeyValuePairConverter}, ConverterParameter={StaticResource ProtocolLookupList}}"/>                     <TextBlock Grid.Row="8" Grid.Column="0" Text="Select INI File"                        Visibility="{Binding Path=DataContext.ProtocolIsBpaPdcStream, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel}, Converter={StaticResource ObjectToVisibilityConverter}}"/>                    <StackPanel Orientation="Horizontal" Grid.Row="8" Grid.Column="1"                        Visibility="{Binding Path=DataContext.ProtocolIsBpaPdcStream, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel}, Converter={StaticResource ObjectToVisibilityConverter}}">                        <TextBox Text="{tsfBinding:Column Path=DataContext.IniFileName, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}"  Width="{StaticResource XXXLargeItemSize}" />                        <Button Command="{Binding Path=DataContext.BrowseIniFileCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}"                    Content=" .. " ToolTip="Browse to ini file" Width="Auto"/>                    </StackPanel>                </Grid>            </Expander>             <Expander x:Name="ExpanderStep2" IsExpanded="{Binding StepTwoExpanded}" Header="Step 2: Select Device Configuration Settings" Expanded="ExpanderStep2_Expanded">                <Grid HorizontalAlignment="Center">                    <Grid.ColumnDefinitions>                        <ColumnDefinition Width="2*" />                        <ColumnDefinition Width="3*" />                        <ColumnDefinition Width="2*" />                        <ColumnDefinition Width="3*" />                    </Grid.ColumnDefinitions>                    <Grid.RowDefinitions>                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                        <RowDefinition Height="Auto" />                    </Grid.RowDefinitions>                     <StackPanel Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="3" Orientation="Horizontal">                        <Button x:Name="ButtonRequestConfiguration" Content="Request Configuration" Width="175" HorizontalAlignment="Left"                        Command="{Binding Path=DataContext.RequestConfigurationCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}"/>                        <TextBlock Text="Request could take up to 60 seconds to complete for UDP only streams." HorizontalAlignment="Left" Margin="0" FontStyle="Italic" />                    </StackPanel>                     <TextBlock Text="OR" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="3" FontWeight="Bold" FontSize="{StaticResource LargeTextSize}" HorizontalAlignment="Center" Margin="0"/>                     <TextBlock Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="3" Text="Select XML Configuration File (from PMU Connection Tester)" HorizontalAlignment="Left"/>                     <TextBlock Grid.Row="3" Grid.Column="0" Text="Configuration File" />                    <StackPanel Orientation="Horizontal" Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="3">                        <TextBox Text="{tsfBinding:Column Path=DataContext.ConfigurationFileName, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}"  Width="{StaticResource XXXLargeItemSize}" />                        <Button Command="{Binding Path=DataContext.BrowseConfigurationFileCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}"                        ToolTip="Browse to configuration file" Width="Auto">                            <Button.Template>                                <ControlTemplate>                                    <Image Source="/GSF.TimeSeries.UI;component/images/Folder.png" Height="24" Width="24" />                                </ControlTemplate>                            </Button.Template>                        </Button>                    </StackPanel>                     <TextBlock Text="OR" Grid.Row="4" Grid.Column="1" Grid.ColumnSpan="3" FontWeight="Bold" FontSize="{StaticResource LargeTextSize}" HorizontalAlignment="Center" Margin="0"/>                     <Button Grid.Column="1" Grid.Row="5" Grid.ColumnSpan="3" Content="Edit Configuration" HorizontalAlignment="Left" Width="175"                     Command="{Binding Path=DataContext.ManualConfigurationCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel}}" />                     <StackPanel Orientation="Horizontal" x:Name="StackPanelSummary" Grid.Row="6" Grid.Column="1" Grid.ColumnSpan="3">                        <Button Content="Save Configuration" Width="175" HorizontalAlignment="Left"                        Command="{Binding Path=DataContext.SaveConfigurationFileCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}"/>                        <TextBlock Text="{tsfBinding:Column Path=DataContext.ConfigurationSummary, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}" Foreground="#FF095188" Width="Auto" Height="Auto"/>                    </StackPanel>                     <Border Grid.Row="7" Grid.Column="1" Grid.ColumnSpan="3" BorderThickness="1" Margin="2" BorderBrush="#FF333333" />                     <CheckBox x:Name="CheckBoxConnectToConcentrator" IsChecked="{tsfBinding:Column Path=DataContext.ConnectToConcentrator, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=1}}"  Content="Connection is to Concentrator" FontWeight="Bold" Grid.Row="8" Grid.Column="1" Grid.ColumnSpan="3" />                     <TextBlock Grid.Row="9" Grid.Column="0" Text="PDC Acronym" Visibility="{Binding ElementName=CheckBoxConnectToConcentrator, Path=IsChecked, Converter={StaticResource ObjectToVisibilityConverter}}"/>                    <StackPanel Orientation="Horizontal" Grid.Row="9" Grid.Column="1" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="2"                        Visibility="{Binding ElementName=CheckBoxConnectToConcentrator, Path=IsChecked, Converter={StaticResource ObjectToVisibilityConverter}}">                        <TextBox Name="PdcAcronymTextBox" Text="{tsfBinding:Column Path=DataContext.PdcAcronym, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}" Width="{StaticResource SmallItemSize}" />                        <TextBlock Text="{tsfBinding:Column Path=DataContext.PdcMessage, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}" Width="Auto" TextWrapping="Wrap"/>                    </StackPanel>                     <TextBlock Grid.Row="10" Grid.Column="0" Text="PDC Name" Visibility="{Binding ElementName=CheckBoxConnectToConcentrator, Path=IsChecked, Converter={StaticResource ObjectToVisibilityConverter}}"/>                    <TextBox Text="{tsfBinding:Column Path=DataContext.PdcName, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=1}}" Grid.Row="10" Grid.Column="1" Grid.ColumnSpan="3"                         Visibility="{Binding ElementName=CheckBoxConnectToConcentrator, Path=IsChecked, Converter={StaticResource ObjectToVisibilityConverter}}"/>                     <TextBlock Grid.Row="11" Grid.Column="0" Text="PDC Device Vendor" Visibility="{Binding ElementName=CheckBoxConnectToConcentrator, Path=IsChecked, Converter={StaticResource ObjectToVisibilityConverter}}"/>                    <ComboBox Grid.Row="11" Grid.Column="1" ItemsSource="{Binding Source={StaticResource VendorDeviceLookupList}}" DisplayMemberPath="Value"                    Visibility="{Binding ElementName=CheckBoxConnectToConcentrator, Path=IsChecked, Converter={StaticResource ObjectToVisibilityConverter}}"                    SelectedItem="{tsfBinding:Column Path=DataContext.PdcVendorDeviceID, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=1}, Converter={StaticResource DictionaryToKeyValuePairConverter}, ConverterParameter={StaticResource VendorDeviceLookupList}}"/>                     <Border Grid.Row="12" Grid.Column="1" Grid.ColumnSpan="3" BorderThickness="1" Margin="2" BorderBrush="#FF333333" />                     <TextBlock Grid.Row="13" Grid.Column="0" Text="Company"/>                    <ComboBox Grid.Row="13" Grid.Column="1" ItemsSource="{Binding Source={StaticResource CompanyLookupList}}" DisplayMemberPath="Value"                    SelectedItem="{tsfBinding:Column Path=DataContext.CompanyID, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=1}, Converter={StaticResource DictionaryToKeyValuePairConverter}, ConverterParameter={StaticResource CompanyLookupList}}"/>                     <TextBlock Grid.Row="13" Grid.Column="2" Text="Historian"/>                    <ComboBox Grid.Row="13" Grid.Column="3" ItemsSource="{Binding Source={StaticResource HistorianLookupList}}" DisplayMemberPath="Value"                        SelectedItem="{tsfBinding:Column Path=DataContext.HistorianID, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=1}, Converter={StaticResource DictionaryToKeyValuePairConverter}, ConverterParameter={StaticResource HistorianLookupList}}"/>                    <TextBlock Grid.Row="14" Grid.Column="0" Text="Interconnection"/>                    <ComboBox Grid.Row="14" Grid.Column="1" ItemsSource="{Binding Source={StaticResource InterconnectionLookupList}}" DisplayMemberPath="Value"                        SelectedItem="{tsfBinding:Column Path=DataContext.InterconnectionID, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=1}, Converter={StaticResource DictionaryToKeyValuePairConverter}, ConverterParameter={StaticResource InterconnectionLookupList}}"/>                    <TextBlock Grid.Row="14" Grid.Column="2" Text="Defined Frame Rate"/>                    <TextBox Grid.Row="14" Grid.Column="3" Name="PdcFrameRateTextBox" Text="{tsfBinding:Column Path=DataContext.PdcFrameRate, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=2}}" Width="{StaticResource XXXSmallItemSize}" />                </Grid>            </Expander>             <Expander x:Name="ExpanderStep3" IsExpanded="{Binding StepThreeExpanded}" Expanded="ExpanderStep3_Expanded">                <Expander.HeaderTemplate>                    <DataTemplate>                        <StackPanel Orientation="Horizontal">                            <TextBlock Text="Step 3: Select Devices to Configure" Margin="0,0,250,0" />                            <StackPanel Orientation="Horizontal" Visibility="{Binding ElementName=ExpanderStep3, Path=IsExpanded, Converter={StaticResource ObjectToVisibilityConverter}}">                                <TextBlock Background="#FF2EB30D" Foreground="White" Text="*" FontWeight="Bold" TextAlignment="Center" Width="20"/>                                <TextBlock Foreground="Red" Text=" Device acronym already exists in the database." />                            </StackPanel>                        </StackPanel>                    </DataTemplate>                </Expander.HeaderTemplate>                 <sdk:DataGrid x:Name="DataGridDevices" ItemsSource="{tsfBinding:Column Path=DataContext.ItemsSource, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel, AncestorLevel=1}}"                    RowDetailsVisibilityMode="VisibleWhenSelected" Height="450" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" VirtualizingPanel.ScrollUnit="Pixel">                     <sdk:DataGrid.Columns>                        <!--<sdk:DataGridCheckBoxColumn Width="*" Binding="{tsfBinding:Column Path=Include}" CellStyle="{StaticResource CenterAlignCellStyle}"-->                        <sdk:DataGridTemplateColumn Width="*">                            <sdk:DataGridTemplateColumn.CellTemplate>                                <DataTemplate>                                    <CheckBox IsChecked="{tsfBinding:Column Path=Include}" Checked="CheckBoxDevice_Checked" Unchecked="CheckBoxDevice_Unchecked" HorizontalAlignment="Center" Margin="0" />                                </DataTemplate>                            </sdk:DataGridTemplateColumn.CellTemplate>                            <sdk:DataGridTemplateColumn.HeaderTemplate>                                <DataTemplate>                                    <CheckBox IsChecked="True" Checked="CheckBoxAll_Checked" Unchecked="CheckBoxAll_Unchecked"/>                                </DataTemplate>                            </sdk:DataGridTemplateColumn.HeaderTemplate>                        </sdk:DataGridTemplateColumn>                         <sdk:DataGridTemplateColumn Header="Acronym" Width="4*">                            <sdk:DataGridTemplateColumn.CellTemplate>                                <DataTemplate>                                    <StackPanel Orientation="Horizontal" Background="{tsfBinding:Column Path=StatusColor, Converter={StaticResource StringToStatusColorConverter}}">                                        <TextBox Text="{tsfBinding:Column Path=Acronym}" ToolTip="{Binding Path=ConfigAcronym}" Margin="25,0,0,0" Width="{StaticResource ItemSize}" MaxLength="200"/>                                        <TextBlock Text="*" Foreground="White" FontWeight="Bold" Margin="2"                                            Visibility="{tsfBinding:Column Path=Existing, Converter={StaticResource ObjectToVisibilityConverter}}"/>                                    </StackPanel>                                </DataTemplate>                            </sdk:DataGridTemplateColumn.CellTemplate>                        </sdk:DataGridTemplateColumn>                        <sdk:DataGridTemplateColumn Header="Name" Width="4*">                            <sdk:DataGridTemplateColumn.CellTemplate>                                <DataTemplate>                                    <TextBox Text="{tsfBinding:Column Path=Name}" ToolTip="{Binding Path=ConfigName}" Margin="0" Width="{StaticResource ItemSize}" MaxLength="200"/>                                </DataTemplate>                            </sdk:DataGridTemplateColumn.CellTemplate>                        </sdk:DataGridTemplateColumn>                        <sdk:DataGridTemplateColumn Header="Longitude" Width="2*">                            <sdk:DataGridTemplateColumn.CellTemplate>                                <DataTemplate>                                    <TextBox Text="{tsfBinding:Column Path=Longitude}" Margin="0" Width="{StaticResource XSmallItemSize}"/>                                </DataTemplate>                            </sdk:DataGridTemplateColumn.CellTemplate>                        </sdk:DataGridTemplateColumn>                        <sdk:DataGridTemplateColumn Header="Latitude" Width="2*">                            <sdk:DataGridTemplateColumn.CellTemplate>                                <DataTemplate>                                    <TextBox Text="{tsfBinding:Column Path=Latitude}" Margin="0" Width="{StaticResource XSmallItemSize}"/>                                </DataTemplate>                            </sdk:DataGridTemplateColumn.CellTemplate>                        </sdk:DataGridTemplateColumn>                        <sdk:DataGridTemplateColumn Header="Digitals" Width="*">                            <sdk:DataGridTemplateColumn.CellTemplate>                                <DataTemplate>                                    <CheckBox Content="{tsfBinding:Column Path=DigitalCount}" IsChecked="{tsfBinding:Column Path=AddDigitals}" Margin="0" HorizontalAlignment="Center"/>                                </DataTemplate>                            </sdk:DataGridTemplateColumn.CellTemplate>                        </sdk:DataGridTemplateColumn>                        <sdk:DataGridTemplateColumn Header="Analogs" Width="*">                            <sdk:DataGridTemplateColumn.CellTemplate>                                <DataTemplate>                                    <CheckBox Content="{tsfBinding:Column Path=AnalogCount}" IsChecked="{tsfBinding:Column Path=AddAnalogs}" Margin="0" HorizontalAlignment="Center"/>                                </DataTemplate>                            </sdk:DataGridTemplateColumn.CellTemplate>                        </sdk:DataGridTemplateColumn>                    </sdk:DataGrid.Columns>                     <sdk:DataGrid.RowDetailsTemplate>                        <DataTemplate>                            <sdk:DataGrid ItemsSource="{tsfBinding:Column Path=PhasorList}" Initialized="RowDetailsDataGrid_Initialized" SizeChanged="RowDetailsDataGrid_SizeChanged">                                <sdk:DataGrid.Columns>                                    <sdk:DataGridCheckBoxColumn Width="*" Binding="{tsfBinding:Column Path=Include}" CellStyle="{StaticResource CenterAlignCellStyle}"/>                                    <sdk:DataGridTemplateColumn Header="Label" Width="5*">                                        <sdk:DataGridTemplateColumn.CellTemplate>                                            <DataTemplate>                                                <TextBox Text="{tsfBinding:Column Path=Label}" ToolTip="{Binding Path=ConfigLabel}" Margin="0" Width="{StaticResource XXLargeItemSize}" MaxLength="200"/>                                            </DataTemplate>                                        </sdk:DataGridTemplateColumn.CellTemplate>                                    </sdk:DataGridTemplateColumn>                                    <sdk:DataGridTemplateColumn Header="Type" Width="2*">                                        <sdk:DataGridTemplateColumn.CellTemplate>                                            <DataTemplate>                                                <TextBox HorizontalAlignment="Center" Text="{tsfBinding:Column Path=Type}" ToolTip="{Binding Path=ConfigType}" Margin="0" Width="{StaticResource XXXSmallItemSize}" MaxLength="1"/>                                            </DataTemplate>                                        </sdk:DataGridTemplateColumn.CellTemplate>                                    </sdk:DataGridTemplateColumn>                                    <sdk:DataGridTemplateColumn Header="Phase" Width="2*">                                        <sdk:DataGridTemplateColumn.CellTemplate>                                            <DataTemplate>                                                <TextBox HorizontalAlignment="Center" Text="{tsfBinding:Column Path=Phase}" Margin="0" Width="{StaticResource XXXSmallItemSize}" MaxLength="2"/>                                            </DataTemplate>                                        </sdk:DataGridTemplateColumn.CellTemplate>                                    </sdk:DataGridTemplateColumn>                                    <sdk:DataGridTemplateColumn Header="Base kV" Width="3*">                                        <sdk:DataGridTemplateColumn.CellTemplate>                                            <DataTemplate>                                                <TextBox HorizontalAlignment="Center" Text="{tsfBinding:Column Path=BaseKVInput}" Margin="0" Width="{StaticResource XXSmallItemSize}" MaxLength="4"/>                                            </DataTemplate>                                        </sdk:DataGridTemplateColumn.CellTemplate>                                    </sdk:DataGridTemplateColumn>                                </sdk:DataGrid.Columns>                            </sdk:DataGrid>                        </DataTemplate>                    </sdk:DataGrid.RowDetailsTemplate>                </sdk:DataGrid>            </Expander>             <Grid>                <Grid.ColumnDefinitions>                    <ColumnDefinition Width="*"/>                    <ColumnDefinition Width="*"/>                </Grid.ColumnDefinitions>                 <Button x:Name="ButtonPrevious" Content="Previous" Click="ButtonPrevious_Click" HorizontalAlignment="Left"/>                 <Grid Grid.Column="1">                    <Grid.ColumnDefinitions>                        <ColumnDefinition Width="*"/>                        <ColumnDefinition Width="Auto"/>                    </Grid.ColumnDefinitions>                    <Button x:Name="ButtonAccept" Width="Auto" Content="  Accept Phase Guesses  " Grid.Column="0" Click="ButtonAccept_Click" HorizontalAlignment="Right" Visibility="Hidden"/>                    <Button x:Name="ButtonNext" Content="Next" Grid.Column="1" Click="ButtonNext_Click" HorizontalAlignment="Right"/>                </Grid>            </Grid>        </StackPanel>    </StackPanel></UserControl>

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t