| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407 | <UserControl xmlns:Control="clr-namespace:MECF.Framework.UI.Core.Control;assembly=MECF.Framework.UI.Core"               xmlns:UserControls="clr-namespace:PunkHPX8_Themes.UserControls;assembly=PunkHPX8_Themes"               x:Class="PunkHPX8_MainPages.Views.DepRecipeView"             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:local="clr-namespace:PunkHPX8_MainPages.Views"             xmlns:prism="http://prismlibrary.com/"              xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"                          xmlns:converters="clr-namespace:PunkHPX8_MainPages.Converters"             xmlns:extendedControls="clr-namespace:MECF.Framework.UI.Core.ExtendedControls;assembly=MECF.Framework.UI.Core"             prism:ViewModelLocator.AutoWireViewModel="True"             mc:Ignorable="d"              d:DesignHeight="800" d:DesignWidth="1800" Loaded="UserControl_Loaded">    <UserControl.Resources>        <converters:BoolReverseConverter x:Key="boolReverseConverter"/>        <converters:BoolVisibilityConverter x:Key="boolVisibilityConverter"/>    </UserControl.Resources>    <Grid>        <Grid.RowDefinitions>            <RowDefinition Height="100"></RowDefinition>            <RowDefinition Height="145"></RowDefinition>            <RowDefinition/>        </Grid.RowDefinitions>        <Grid.ColumnDefinitions>            <ColumnDefinition Width="50"></ColumnDefinition>            <ColumnDefinition Width="400"></ColumnDefinition>            <ColumnDefinition Width="700"></ColumnDefinition>            <ColumnDefinition Width="700"></ColumnDefinition>            <ColumnDefinition/>        </Grid.ColumnDefinitions>        <UserControls:RecipeFileLoadControl Grid.Row="0" Grid.RowSpan="3" Grid.Column="1" Title="Dep Recipe" RecipeNodes="{Binding RecipeNodes}" OperationCommand="{Binding OperationCommand}"                                            RecipeLocation="{Binding CurrentNode.RecipeLocation}" EditEnable="{Binding EditEnable}" CreateEnable="{Binding CreateEnable}" RecipeFileName="{Binding CurrentNode.FileName}"                                            CreateCommand="{Binding CreateCommand}" EditCommand="{Binding EditCommand}"/>        <Grid Grid.Row="0" Grid.Column="2" Grid.RowSpan="2">            <Grid.RowDefinitions>                <RowDefinition Height="70"></RowDefinition>                <RowDefinition Height="70"></RowDefinition>                <RowDefinition/>            </Grid.RowDefinitions>            <GroupBox Header="PPID" Grid.Row="0">                <TextBlock Text="{Binding Recipe.Ppid}" FontSize="20" VerticalAlignment="Center" TextAlignment="Center">                </TextBlock>            </GroupBox>            <GroupBox Header="Description" Grid.Row="1">                <TextBlock Text="{Binding Recipe.Description}" FontSize="18" VerticalAlignment="Center" TextAlignment="Center">                </TextBlock>            </GroupBox>        </Grid>        <GroupBox Header="Author" Grid.Row="1" Grid.Column="2" Width="180" Margin="-500,60,10,20">            <Label Content="{Binding Recipe.Author}" Height="30" Width="180" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray"                                           HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="6,0,0,0"></Label>        </GroupBox>        <GroupBox Header="Creation Date" Grid.Row="1" Grid.Column="2" Width="180" Margin="-120,60,10,20">            <Label Content="{Binding Recipe.CreateDate}" Height="30" Width="180" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray"                                         HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="6,0,0,0"></Label>        </GroupBox>        <GroupBox Header="Save Date" Grid.Row="1" Grid.Column="2" Width="180" Margin="260,60,10,20">            <Label Content="{Binding Recipe.SaveDate}" Height="30" Width="180" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray"                                         HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="6,0,0,0"></Label>        </GroupBox>        <GroupBox Header="Chemistry" IsEnabled="{Binding Enable}"   Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Width="180" Margin="-60,60,10,20" >            <ComboBox Height="30" Margin="10,0,10,0" ItemsSource="{Binding ChemistryList}" SelectedItem="{Binding Recipe.Chemistry, Mode=TwoWay}">            </ComboBox>        </GroupBox>        <GroupBox Header="Total Time" IsEnabled="{Binding Enable}"  Grid.Row="1" Grid.Column="3" Grid.ColumnSpan="2" Margin="-75,60,500,20" Width="180">            <Label Content="{Binding Recipe.TotalTime}" Height="30" Width="180" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray"                            HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="6,0,0,0"></Label>        </GroupBox>        <Grid Grid.Row="0" Grid.Column="3" Grid.RowSpan="2">            <Grid.RowDefinitions>                <RowDefinition Height="70"></RowDefinition>                <RowDefinition Height="70"></RowDefinition>                <RowDefinition/>                <RowDefinition Height="70"></RowDefinition>            </Grid.RowDefinitions>            <Grid Grid.Row="0">                <Grid.ColumnDefinitions>                    <ColumnDefinition/>                    <ColumnDefinition/>                    <ColumnDefinition/>                </Grid.ColumnDefinitions>                <Button Grid.Column="0" IsEnabled="{Binding Enable}" Style="{StaticResource SysBtnStyle}"  Content="Save" Height="35" Width="100" Command="{Binding SaveRecipeCommand}"></Button>                <Button Grid.Column="1" Style="{StaticResource SysBtnStyle}"  Content="SaveAs" Height="35" Width="100" Command="{Binding SaveAsRecipeCommand}"></Button>            </Grid>        </Grid>        <Grid Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2">            <Grid>                <Grid Grid.Row="0">                    <Grid.ColumnDefinitions>                        <ColumnDefinition Width="1300"></ColumnDefinition>                        <ColumnDefinition/>                    </Grid.ColumnDefinitions>                    <TabControl Grid.Column="0"  Background="Transparent">                        <TabItem Header="Entry">                            <Grid>                                <Grid.RowDefinitions>                                    <RowDefinition Height="100"></RowDefinition>                                    <RowDefinition Height="100"></RowDefinition>                                    <RowDefinition Height="100"></RowDefinition>                                    <RowDefinition Height="100"></RowDefinition>                                    <RowDefinition/>                                </Grid.RowDefinitions>                                <Grid.ColumnDefinitions>                                    <ColumnDefinition Width="86"></ColumnDefinition>                                    <ColumnDefinition Width="214"/>                                    <ColumnDefinition Width="300"></ColumnDefinition>                                    <ColumnDefinition/>                                </Grid.ColumnDefinitions>                                <UserControls:GroupTextBoxControl Grid.Row="0" Grid.Column="0" Title="Entry Spin Speed" Unit="RPM" MinValue="0" MaxValue="1000" Margin="20,10,20,10"                                   IntValue="{Binding Recipe.EntrySpinSpeed,Mode=TwoWay}"                                    ValidResult="{Binding PropertyValidResultDic[EntrySpinSpeed],Mode=TwoWay}"  Width="260" Grid.ColumnSpan="2"/>                                <UserControls:GroupDigitalBoxControl Grid.Column="0" Grid.Row="1" Title="Entry Z Offset" Unit="mm" MinValue="-100" MaxValue="100"  Margin="20,10,20,10"                                                                     DigitalValue="{Binding Recipe.EntryZoffset,Mode=TwoWay}"                                                                      ValidResult="{Binding PropertyValidResultDic[EntryZoffset],Mode=TwoWay}" Width="260" Grid.ColumnSpan="2" />                                <UserControls:GroupTextBoxControl Grid.Row="0" Grid.Column="2" Title="Plating Delay" Unit="sec" MinValue="0" MaxValue="300" Margin="20,10,20,10"                                        IntValue="{Binding Recipe.PlatingDelay,Mode=TwoWay}"                                         ValidResult="{Binding PropertyValidResultDic[PlatingDelay],Mode=TwoWay}"  Width="260"/>                                <UserControls:GroupTextBoxControl Grid.Row="2" Grid.Column="2" Title="Entry Current" Unit="mA" MinValue="0" MaxValue="1000" Margin="20,10,20,10"                                        IntValue="{Binding Recipe.EntryCurrent,Mode=TwoWay}"                                         ValidResult="{Binding PropertyValidResultDic[EntryCurrent],Mode=TwoWay}"  Width="260"/>                                <UserControls:GroupTextBoxControl Grid.Row="3" Grid.Column="2" Title="Entry Voltage" Unit="mV" MinValue="0" MaxValue="5000" Margin="20,10,20,10"                                        IntValue="{Binding Recipe.EntryVoltage,Mode=TwoWay}"                                         ValidResult="{Binding PropertyValidResultDic[EntryVoltage],Mode=TwoWay}"  Width="260"/>                                <GroupBox Grid.Row="1" Grid.Column="2" IsEnabled="{Binding Enable}" Margin="10,10,10,10" Width="260" Header="Entry Type">                                    <Grid>                                        <RadioButton Content="Cold" Height="30" Width="60" VerticalContentAlignment="Center" HorizontalAlignment="Left"                                        Command="{Binding AutoCurrentBasedFalseCommand}"  IsChecked="{Binding Recipe.IsEntryTypeCold ,Mode=TwoWay}" Margin="28,-1,0,-6" ></RadioButton>                                        <RadioButton Content="Hot" Height="30" Width="60" VerticalContentAlignment="Center" HorizontalAlignment="Center"                                          Command="{Binding AutoCurrentBasedTrueCommand}"  IsChecked="{Binding Recipe.IsEntryTypeCold,Mode=TwoWay,Converter={StaticResource boolReverseConverter}}" Margin="100,-1,0,-6" ></RadioButton>                                    </Grid>                                </GroupBox>                            </Grid>                        </TabItem>                        <TabItem Header="RampSteps">                            <Grid>                                <Grid.RowDefinitions>                                    <RowDefinition Height="100"></RowDefinition>                                    <RowDefinition Height="100"></RowDefinition>                                    <RowDefinition Height="100"></RowDefinition>                                    <RowDefinition Height="100"></RowDefinition>                                    <RowDefinition/>                                </Grid.RowDefinitions>                                <Grid.ColumnDefinitions>                                    <ColumnDefinition Width="9"></ColumnDefinition>                                    <ColumnDefinition Width="13.5"/>                                    <ColumnDefinition Width="197.5"/>                                    <ColumnDefinition Width="220"></ColumnDefinition>                                    <ColumnDefinition Width="550"></ColumnDefinition>                                    <ColumnDefinition/>                                </Grid.ColumnDefinitions>                                <UserControls:GroupTextBoxControl Grid.Row="0" Grid.Column="2" Width="200" Title="Current Warning" Unit="%" MinValue="0" MaxValue="100" Margin="0,10,218,10"                                    IntValue="{Binding Recipe.DepCurrentWarning,Mode=TwoWay}"                                 ValidResult="{Binding PropertyValidResultDic[DepCurrentWarning],Mode=TwoWay}" Grid.ColumnSpan="2"   />                                <UserControls:GroupTextBoxControl Grid.Row="1" Grid.Column="2" Width="200" Title="Current Fault" Unit="%" MinValue="0" MaxValue="100" Margin="0,10,218,10"                IntValue="{Binding Recipe.DepCurrentFault,Mode=TwoWay}"             ValidResult="{Binding PropertyValidResultDic[DepCurrentFault],Mode=TwoWay}" Grid.ColumnSpan="2"   />                                <UserControls:GroupTextBoxControl Grid.Row="2" Grid.Column="2" Width="200" Title="Max Voltage Warning" Unit="%" MinValue="0" MaxValue="100" Margin="0,10,218,10"                IntValue="{Binding Recipe.DepMaxVoltageWarning,Mode=TwoWay}"             ValidResult="{Binding PropertyValidResultDic[DepMaxVoltageWarning],Mode=TwoWay}" Grid.ColumnSpan="2"   />                                <UserControls:GroupTextBoxControl Grid.Row="3" Grid.Column="2" Width="200" Title="Max Voltage Fault" Unit="%" MinValue="0" MaxValue="100" Margin="0,10,218,10"                IntValue="{Binding Recipe.DepMaxVoltageFault,Mode=TwoWay}"             ValidResult="{Binding PropertyValidResultDic[DepMaxVoltageFault],Mode=TwoWay}" Grid.ColumnSpan="2"/>                                <UserControls:GroupDigitalBoxControl Grid.Column="3" Grid.Row="0" Title="Plating Z Offset" Unit="mm" MinValue="-100" MaxValue="100"  Margin="-270,10,200,10"                                      DigitalValue="{Binding Recipe.DepZoffset,Mode=TwoWay}"                                       ValidResult="{Binding PropertyValidResultDic[DepZoffset],Mode=TwoWay}" Width="260" Grid.ColumnSpan="2" />                                <GroupBox Header="Deposition Step" Grid.Row="1" Grid.Column="3" Grid.ColumnSpan="2" Grid.RowSpan="4" Margin="20,0,0,20">                                    <Grid>                                        <Grid.RowDefinitions>                                            <RowDefinition Height="75"></RowDefinition>                                            <RowDefinition Height="280"/>                                            <RowDefinition Height="65"></RowDefinition>                                        </Grid.RowDefinitions>                                        <Grid Grid.Row="0">                                            <Grid.ColumnDefinitions>                                                <ColumnDefinition Width="180"></ColumnDefinition>                                                <ColumnDefinition Width="180"></ColumnDefinition>                                                <ColumnDefinition Width="180"></ColumnDefinition>                                                <ColumnDefinition Width="180"></ColumnDefinition>                                                <ColumnDefinition/>                                            </Grid.ColumnDefinitions>                                            <GroupBox Header="Plating Steps" Grid.Row="0" Grid.Column="0">                                                <Label Content="{Binding Recipe.DepStepCount}" Height="30" Width="151" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray"                                                        HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="6,0,0,0"></Label>                                            </GroupBox>                                            <GroupBox Header="Total Time" Grid.Row="0" Grid.Column="1">                                                <Label Content="{Binding Recipe.DepStepTotalTime}" Height="30" Width="151" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray"                                                        HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="6,0,0,0"></Label>                                            </GroupBox>                                            <GroupBox Header="Total Current" Grid.Row="0" Grid.Column="2">                                                <Label Height="30" Width="151" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray"                                                        HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="6,0,0,0">                                                    <Label.Content>                                                        <TextBlock Text="{Binding Recipe.DepStepTotalCurrent,StringFormat=\{0:F3\} Amp_Minutes}"/>                                                    </Label.Content>                                                </Label>                                            </GroupBox>                                        </Grid>                                        <DataGrid x:Name="RampDataGrid" Grid.Row="1" Grid.Column="0" Grid.RowSpan="1" Grid.ColumnSpan="2" MinRowHeight="27" AutoGenerateColumns="False"  CanUserAddRows="False"  FontFamily="Arial" FontSize="14" Margin="0,10,0,20"                      ItemsSource="{Binding Recipe.DepSteps}" SelectionMode="Single" IsEnabled="{Binding Enable}" SelectedIndex="{Binding SelectedRampIndex,Mode=TwoWay}"    >                                            <DataGrid.Resources>                                                <extendedControls:BindingProxy x:Key="DataShowProxy"  Data="{Binding}" />                                            </DataGrid.Resources>                                            <DataGrid.Columns>                                                <DataGridTextColumn Header="Time
(Sec)" Width="100"  Binding="{Binding DurartionSeconds,Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False"/>                                                <DataGridTextColumn Header="Current
(Amps)" Width="120"  Binding="{Binding CurrentValue,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" >                                                </DataGridTextColumn>                                                <DataGridTextColumn Header="Plating Z Offset
(mm)" Width="120"  Binding="{Binding PlatingZoffset,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" >                                                </DataGridTextColumn>                                                <DataGridTextColumn Header="Plating Speed
(rpm)" Width="120"  Binding="{Binding PlatingSpeed,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" />                                                <DataGridCheckBoxColumn Header="Bi-Direaction" Binding="{Binding BiDireaction,Mode=TwoWay}" Width="120" CanUserSort="False" CanUserReorder="False" CanUserResize="True" >                                                </DataGridCheckBoxColumn>                                                <DataGridTextColumn Header="B-D Frequency
(sec)" Width="120"  Binding="{Binding BiDFrequency,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" />                                            </DataGrid.Columns>                                        </DataGrid>                                        <Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="4" IsEnabled="{Binding Enable}" Margin="0,-20,0,30">                                            <Button Style="{StaticResource SysBtnStyle}"  Content="Add Below" Height="35" Width="100" Command="{Binding AddBelowCommand}" HorizontalAlignment="Left" Margin="0,0,0,0"></Button>                                            <Button Style="{StaticResource SysBtnStyle}"  Content="Add Above" Height="35" Width="100" Command="{Binding AddAboveCommand}" HorizontalAlignment="Left" Margin="120,0,0,0"></Button>                                            <Button Style="{StaticResource SysBtnStyle}"  Content="Move Up" Height="35" Width="100" Command="{Binding MoveUpCommand}" HorizontalAlignment="Left" Margin="240,0,0,0"></Button>                                            <Button Style="{StaticResource SysBtnStyle}"  Content="Move Down" Height="35" Width="100" Command="{Binding MoveDownCommand}" HorizontalAlignment="Left" Margin="360,0,0,0"></Button>                                            <Button Style="{StaticResource SysBtnStyle}"  Content="Delete" Height="35" Width="100" Command="{Binding DeleteCommand}" HorizontalAlignment="Left" Margin="480,0,0,0"></Button>                                        </Grid>                                    </Grid>                                </GroupBox>                                <GroupBox Header="Smart Spin" Grid.Row="0" Grid.Column="5" Grid.RowSpan="5" Margin="10,10,0,20">                                    <Grid>                                        <Grid.RowDefinitions>                                            <RowDefinition Height="80"></RowDefinition>                                            <RowDefinition Height="80"></RowDefinition>                                            <RowDefinition Height="80"></RowDefinition>                                            <RowDefinition Height="80"></RowDefinition>                                            <RowDefinition Height="80"></RowDefinition>                                            <RowDefinition Height="80"></RowDefinition>                                        </Grid.RowDefinitions>                                        <GroupBox Header="Number of Smart Sping" Grid.Row="0" Margin="10,10,10,10"  IsEnabled="{Binding Enable}" >                                            <TextBox Text="{Binding Recipe.DepStepCount}" Height="30" Width="175" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White"                                                  HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="18,0,0,0"></TextBox>                                        </GroupBox>                                        <UserControls:GroupTextBoxControl  Grid.Row="1"  Width="260" Title="Section 1 Speed" Unit="rpm" MinValue="0" MaxValue="100" Margin="10,0,10,0"                                        IntValue="{Binding Recipe.Section1Speed,Mode=TwoWay}"                                                 ValidResult="{Binding PropertyValidResultDic[Section1Speed],Mode=TwoWay}" />                                        <GroupBox Header="Section 1 Angle" Grid.Row="2" Margin="10,0,10,0">                                            <Grid>                                                <Grid.RowDefinitions>                                                    <RowDefinition Height="20"></RowDefinition>                                                    <RowDefinition Height="50"></RowDefinition>                                                </Grid.RowDefinitions>                                                <Grid.ColumnDefinitions>                                                    <ColumnDefinition Width="20"></ColumnDefinition>                                                    <ColumnDefinition Width="80"></ColumnDefinition>                                                    <ColumnDefinition Width="20"></ColumnDefinition>                                                    <ColumnDefinition Width="80"></ColumnDefinition>                                                    <ColumnDefinition/>                                                </Grid.ColumnDefinitions>                                                <Label Grid.Row="1" Grid.Column="0" Content="0"></Label>                                                <Label Grid.Row="1" Grid.Column="4" Content="360"></Label>                                                <Label Grid.Row="0" Grid.Column="1" Content="Start" Margin="5,-3,0,0"></Label>                                                <Label Grid.Row="0" Grid.Column="3" Content="End" Margin="35,-3,0,0"></Label>                                                <TextBox Text="{Binding Recipe.Section1AngleStartPosiotion,Mode=TwoWay}"  IsEnabled="{Binding Enable}"  Grid.Row="1" Grid.Column="1" Height="30" Width="50" VerticalAlignment="Top" HorizontalAlignment="Left" Foreground="White"                                                          HorizontalContentAlignment="Center" VerticalContentAlignment="Center"></TextBox>                                                <TextBox Text="{Binding Recipe.Section1AngleEndPostion,Mode=TwoWay}"  IsEnabled="{Binding Enable}"  Grid.Row="1" Grid.Column="3" Margin="0,0,5,0" Height="30" Width="50" VerticalAlignment="Top" HorizontalAlignment="Right" Foreground="White"                        HorizontalContentAlignment="Center" VerticalContentAlignment="Center"></TextBox>                                            </Grid>                                        </GroupBox>                                        <UserControls:GroupTextBoxControl  Grid.Row="3"  Width="260" Title="Section 2 Speed" Unit="rpm" MinValue="0" MaxValue="100" Margin="10,10,10,0"                IntValue="{Binding Recipe.Section2Speed,Mode=TwoWay}"                         ValidResult="{Binding PropertyValidResultDic[Section2Speed],Mode=TwoWay}" />                                        <GroupBox Header="Section 2 Angle" Grid.Row="4" Margin="10,0,10,0">                                            <Grid>                                                <Grid.RowDefinitions>                                                    <RowDefinition Height="20"></RowDefinition>                                                    <RowDefinition Height="50"></RowDefinition>                                                </Grid.RowDefinitions>                                                <Grid.ColumnDefinitions>                                                    <ColumnDefinition Width="20"></ColumnDefinition>                                                    <ColumnDefinition Width="80"></ColumnDefinition>                                                    <ColumnDefinition Width="20"></ColumnDefinition>                                                    <ColumnDefinition Width="80"></ColumnDefinition>                                                    <ColumnDefinition/>                                                </Grid.ColumnDefinitions>                                                <Label Grid.Row="1" Grid.Column="0" Content="0"></Label>                                                <Label Grid.Row="1" Grid.Column="4" Content="360"></Label>                                                <Label Grid.Row="0" Grid.Column="1" Content="Start" Margin="5,-3,0,0"></Label>                                                <Label Grid.Row="0" Grid.Column="3" Content="End" Margin="35,-3,0,0"></Label>                                                <TextBox Text="{Binding Recipe.Section2AngleStartPosiotion,Mode=TwoWay}"  IsEnabled="{Binding Enable}"  Grid.Row="1" Grid.Column="1" Height="30" Width="50" VerticalAlignment="Top" HorizontalAlignment="Left" Foreground="White"                                 HorizontalContentAlignment="Center" VerticalContentAlignment="Center"></TextBox>                                                <TextBox Text="{Binding Recipe.Section2AngleEndPostion,Mode=TwoWay}"  IsEnabled="{Binding Enable}"  Grid.Row="1" Grid.Column="3" Margin="0,0,5,0" Height="30" Width="50" VerticalAlignment="Top" HorizontalAlignment="Right" Foreground="White" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"></TextBox>                                            </Grid>                                        </GroupBox>                                        <UserControls:GroupTextBoxControl  Grid.Row="5"  Width="260" Title="Normal Speed" Unit="rpm" MinValue="0" MaxValue="100" Margin="10,10,10,0"        IntValue="{Binding Recipe.NormalSpeed,Mode=TwoWay}"         ValidResult="{Binding PropertyValidResultDic[NormalSpeed],Mode=TwoWay}" />                                    </Grid>                                </GroupBox>                            </Grid>                        </TabItem>                        <TabItem Header="PulseSteps">                            <Grid>                                <Grid.ColumnDefinitions>                                    <ColumnDefinition Width="300"></ColumnDefinition>                                    <ColumnDefinition Width="300"></ColumnDefinition>                                    <ColumnDefinition Width="300"></ColumnDefinition>                                    <ColumnDefinition Width="300"></ColumnDefinition>                                </Grid.ColumnDefinitions>                                <GroupBox Header="Reclaim" Grid.Column="0" HorizontalAlignment="Left" Margin="10,10,10,10" Width="280">                                    <Grid>                                        <Grid.RowDefinitions>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition/>                                        </Grid.RowDefinitions>                                        <UserControls:GroupTextBoxControl Grid.Row="0"  Width="250" Title="Speed" Unit="rpm" MinValue="0" MaxValue="1000" Margin="10,20,10,20"                                                IntValue="{Binding Recipe.ReclaimSpeed,Mode=TwoWay}"                                                 ValidResult="{Binding PropertyValidResultDic[ReclaimSpeed],Mode=TwoWay}"/>                                        <UserControls:GroupTextBoxControl Grid.Row="1"  Width="250" Title="Time" Unit="sec" MinValue="0" MaxValue="100" Margin="10,20,10,20"                                                IntValue="{Binding Recipe.ReclaimTime,Mode=TwoWay}"                                                 ValidResult="{Binding PropertyValidResultDic[ReclaimTime],Mode=TwoWay}"/>                                        <UserControls:GroupDigitalBoxControl Grid.Row="2" Width="250"  Title="Z Offset" Unit="mm" MinValue="-100" MaxValue="100"  Margin="10,20,10,20"                                                DigitalValue="{Binding Recipe.ReclaimZoffset,Mode=TwoWay}"                                                 ValidResult="{Binding PropertyValidResultDic[ReclaimZoffset],Mode=TwoWay}"  />                                    </Grid>                                </GroupBox>                                <GroupBox Header="Rinse" Grid.Column="1" Margin="10,10,0,10" HorizontalAlignment="Left" Width="280">                                    <Grid>                                        <Grid.RowDefinitions>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition/>                                        </Grid.RowDefinitions>                                        <UserControls:GroupTextBoxControl Grid.Row="0"  Width="250" Title="Speed" Unit="rpm" MinValue="0" MaxValue="1000" Margin="10,20,10,20"IntValue="{Binding Recipe.RinseSpeed,Mode=TwoWay}" ValidResult="{Binding PropertyValidResultDic[RinseSpeed],Mode=TwoWay}"/>                                        <UserControls:GroupTextBoxControl Grid.Row="1"  Width="250" Title="Time" Unit="sec" MinValue="0" MaxValue="100" Margin="10,20,10,20"IntValue="{Binding Recipe.RinseTime,Mode=TwoWay}" ValidResult="{Binding PropertyValidResultDic[RinseTime],Mode=TwoWay}"/>                                        <UserControls:GroupDigitalBoxControl Grid.Row="2" Width="250"  Title="Z Offset" Unit="mm" MinValue="-100" MaxValue="100"  Margin="10,20,10,20"DigitalValue="{Binding Recipe.RinseZoffset,Mode=TwoWay}" ValidResult="{Binding PropertyValidResultDic[RinseZoffset],Mode=TwoWay}"  />                                    </Grid>                                </GroupBox>                                <GroupBox Header="Dry" Grid.Column="2" HorizontalAlignment="Left" Margin="10,10,10,10" Width="280">                                    <Grid>                                        <Grid.RowDefinitions>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition/>                                        </Grid.RowDefinitions>                                        <UserControls:GroupTextBoxControl Grid.Row="0"  Width="250" Title="Speed" Unit="rpm" MinValue="0" MaxValue="1000" Margin="10,20,10,20"IntValue="{Binding Recipe.DrySpeed,Mode=TwoWay}" ValidResult="{Binding PropertyValidResultDic[DrySpeed],Mode=TwoWay}"/>                                        <UserControls:GroupTextBoxControl Grid.Row="1"  Width="250" Title="Time" Unit="sec" MinValue="0" MaxValue="100" Margin="10,20,10,20"IntValue="{Binding Recipe.DryTime,Mode=TwoWay}" ValidResult="{Binding PropertyValidResultDic[DryTime],Mode=TwoWay}"/>                                        <UserControls:GroupDigitalBoxControl Grid.Row="2" Width="250"  Title="Z Offset" Unit="mm" MinValue="-100" MaxValue="100"  Margin="10,20,10,20"DigitalValue="{Binding Recipe.DryZoffset,Mode=TwoWay}" ValidResult="{Binding PropertyValidResultDic[DryZoffset],Mode=TwoWay}"  />                                    </Grid>                                </GroupBox>                                <GroupBox Header="Interval Rinse" Grid.Column="3" HorizontalAlignment="Left" Margin="10,10,10,10" Width="280">                                    <Grid>                                        <Grid.RowDefinitions>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition Height="120"></RowDefinition>                                            <RowDefinition/>                                        </Grid.RowDefinitions>                                        <GroupBox Grid.Row="0" IsEnabled="{Binding Enable}" Margin="10,10,10,10" Header="Rinse Before Entry">                                            <Grid>                                                <RadioButton Content="Enable" Height="30" Width="60" VerticalContentAlignment="Center" HorizontalAlignment="Left"                  Command="{Binding AutoCurrentBasedFalseCommand}"  IsChecked="{Binding Recipe.RinseBeforeEntryEnable ,Mode=TwoWay}" Margin="18,-1,0,-6" ></RadioButton>                                                <RadioButton Content="Disable" Height="30" Width="65" VerticalContentAlignment="Center" HorizontalAlignment="Center"                    Command="{Binding AutoCurrentBasedTrueCommand}"  IsChecked="{Binding Recipe.RinseBeforeEntryEnable,Mode=TwoWay,Converter={StaticResource boolReverseConverter}}" Margin="60,-1,0,-6" ></RadioButton>                                            </Grid>                                        </GroupBox>                                        <UserControls:GroupTextBoxControl Grid.Row="1"  Width="250" Title="Speed" Unit="rpm" MinValue="0" MaxValue="1000" Margin="10,20,10,20"IntValue="{Binding Recipe.IntervalRinseSpeed,Mode=TwoWay}" ValidResult="{Binding PropertyValidResultDic[IntervalRinseSpeed],Mode=TwoWay}"/>                                        <UserControls:GroupTextBoxControl Grid.Row="2"  Width="250" Title="Time" Unit="sec" MinValue="0" MaxValue="100" Margin="10,20,10,20"IntValue="{Binding Recipe.IntervalRinseTime,Mode=TwoWay}" ValidResult="{Binding PropertyValidResultDic[IntervalRinseTime],Mode=TwoWay}"/>                                        <UserControls:GroupDigitalBoxControl Grid.Row="3" Width="250"  Title="Z Offset" Unit="mm" MinValue="-100" MaxValue="100"  Margin="10,20,10,20"DigitalValue="{Binding Recipe.IntervalRinseZoffset,Mode=TwoWay}" ValidResult="{Binding PropertyValidResultDic[IntervalRinseZoffset],Mode=TwoWay}"  />                                    </Grid>                                </GroupBox>                            </Grid>                        </TabItem>                    </TabControl>                </Grid>            </Grid>        </Grid>    </Grid></UserControl>
 |