| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 | <UserControl    x:Class="FurnaceSimulator.Views.SimulatorPlcFloatIOView"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    xmlns:control="clr-namespace:MECF.Framework.UI.Core.Control;assembly=MECF.Framework.UI.Core"    xmlns:ctrl="http://OpenSEMI.Ctrlib.com/presentation"    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"    xmlns:toolkit="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit"    xmlns:views="clr-namespace:FurnaceSimulator.Views"    d:DesignHeight="450"    d:DesignWidth="1900"    mc:Ignorable="d">    <UserControl.Resources>        <views:BoolBackgroundConverter x:Key="BoolBackgroundConverter" />        <SolidColorBrush x:Key="DataGrid_Cell_BD" Color="Gray" />        <Style x:Key="Lamp-Button" TargetType="{x:Type views:IoButton}">            <Setter Property="Width" Value="16" />            <Setter Property="Height" Value="16" />            <Setter Property="Template">                <Setter.Value>                    <ControlTemplate TargetType="{x:Type views:IoButton}">                        <Grid>                            <ContentPresenter                                HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"                                VerticalAlignment="{TemplateBinding VerticalContentAlignment}"                                Content=""                                RecognizesAccessKey="True"                                SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />                            <Ellipse                                Fill="DarkGray"                                Stroke="Gray"                                StrokeThickness="2" />                            <Ellipse                                x:Name="Highlight"                                Fill="Lime"                                Stroke="Gray"                                StrokeThickness="2" />                        </Grid>                        <ControlTemplate.Triggers>                            <Trigger Property="IsChecked" Value="True">                                <Setter TargetName="Highlight" Property="Visibility" Value="Visible" />                            </Trigger>                            <Trigger Property="IsChecked" Value="False">                                <Setter TargetName="Highlight" Property="Visibility" Value="Collapsed" />                            </Trigger>                            <Trigger Property="IsMouseOver" Value="False">                                <Setter TargetName="Highlight" Property="Opacity" Value="1" />                            </Trigger>                        </ControlTemplate.Triggers>                    </ControlTemplate>                </Setter.Value>            </Setter>        </Style>    </UserControl.Resources>    <Grid>        <Grid.ColumnDefinitions>            <ColumnDefinition Width="*" />            <ColumnDefinition Width="*" />            <ColumnDefinition Width="*" />            <ColumnDefinition Width="*" />        </Grid.ColumnDefinitions>        <TabControl>            <TabItem Header="DI">                <ListView                    Name="DIListView"                    AlternationCount="2"                    FontSize="12"                    ItemsSource="{Binding Path=DIs}">                    <ListView.View>                        <GridView>                            <GridViewColumn                                Width="Auto"                                DisplayMemberBinding="{Binding Path=Index}"                                Header="Index" />                            <GridViewColumn                                Width="Auto"                                DisplayMemberBinding="{Binding Path=Name}"                                Header="Name" />                            <GridViewColumn                                Width="Auto"                                DisplayMemberBinding="{Binding Path=Address}"                                Header="Address" />                            <GridViewColumn Width="50" Header="Status">                                <GridViewColumn.CellTemplate>                                    <DataTemplate>                                        <Grid Width="35">                                            <views:IoButton                                                HorizontalAlignment="Center"                                                IsChecked="{Binding BoolValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"                                                ON="{Binding Path=BoolValue}"                                                Style="{StaticResource Lamp-Button}" />                                        </Grid>                                    </DataTemplate>                                </GridViewColumn.CellTemplate>                            </GridViewColumn>                            <GridViewColumn Width="50" Header="Hold">                                <GridViewColumn.CellTemplate>                                    <DataTemplate>                                        <CheckBox                                            x:Name="ckHold"                                            Width="25"                                            Height="25"                                            Margin="0,10,0,0"                                            IsChecked="{Binding Path=HoldValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />                                    </DataTemplate>                                </GridViewColumn.CellTemplate>                            </GridViewColumn>                        </GridView>                    </ListView.View>                </ListView>            </TabItem>        </TabControl>        <TabControl Grid.Column="1">            <TabItem Header="DO">                <ListView                    Name="DOListView"                    Grid.Column="3"                    AlternationCount="2"                    FontSize="12"                    ItemsSource="{Binding Path=DOs}">                    <ListView.View>                        <GridView>                            <GridViewColumn                                Width="Auto"                                DisplayMemberBinding="{Binding Path=Index}"                                Header="Index" />                            <GridViewColumn                                Width="Auto"                                DisplayMemberBinding="{Binding Path=Name}"                                Header="Name" />                            <GridViewColumn                                Width="Auto"                                DisplayMemberBinding="{Binding Path=Address}"                                Header="Address" />                            <GridViewColumn Width="50" Header="Status">                                <GridViewColumn.CellTemplate>                                    <DataTemplate>                                        <Grid Width="35">                                            <views:IoButton                                                Height="35"                                                HorizontalAlignment="Center"                                                IsChecked="{Binding BoolValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"                                                ON="{Binding Path=BoolValue}"                                                Style="{StaticResource Lamp-Button}" />                                        </Grid>                                    </DataTemplate>                                </GridViewColumn.CellTemplate>                            </GridViewColumn>                            <!--<GridViewColumn Width="50" Header="Hold">                                <GridViewColumn.CellTemplate>                                    <DataTemplate>                                        <CheckBox x:Name="ckHold" IsChecked="{Binding Path=HoldValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="25" Height="25" Margin="0,10,0,0"></CheckBox>                                    </DataTemplate>                                </GridViewColumn.CellTemplate>                            </GridViewColumn>-->                        </GridView>                    </ListView.View>                </ListView>            </TabItem>        </TabControl>        <TabControl Grid.Column="2">            <TabItem Header="AI">                <ListView                    Name="AIListView"                    AlternationCount="2"                    FontSize="12"                    ItemsSource="{Binding Path=AIs}">                    <ListView.View>                        <GridView>                            <GridViewColumn                                Width="Auto"                                DisplayMemberBinding="{Binding Path=Index}"                                Header="Index" />                            <GridViewColumn                                Width="Auto"                                DisplayMemberBinding="{Binding Path=Name}"                                Header="Name" />                            <GridViewColumn                                Width="Auto"                                DisplayMemberBinding="{Binding Path=Address}"                                Header="Address" />                            <GridViewColumn Width="120" Header="Value">                                <GridViewColumn.CellTemplate>                                    <DataTemplate>                                        <TextBox                                            Width="100"                                            Height="20"                                            Margin="0"                                            Padding="0"                                            Text="{Binding Path=FloatValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />                                    </DataTemplate>                                </GridViewColumn.CellTemplate>                            </GridViewColumn>                            <GridViewColumn Width="50" Header="Hold">                                <GridViewColumn.CellTemplate>                                    <DataTemplate>                                        <CheckBox                                            x:Name="ckHold"                                            Width="25"                                            Height="25"                                            Margin="0,10,0,0"                                            IsChecked="{Binding Path=HoldValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />                                    </DataTemplate>                                </GridViewColumn.CellTemplate>                            </GridViewColumn>                        </GridView>                    </ListView.View>                </ListView>            </TabItem>        </TabControl>        <TabControl Grid.Column="3">            <TabItem Header="AO">                <ListView                    Name="AOListView"                    Grid.Column="1"                    AlternationCount="2"                    FontSize="12"                    ItemsSource="{Binding Path=AOs}">                    <ListView.View>                        <GridView>                            <GridViewColumn                                Width="Auto"                                DisplayMemberBinding="{Binding Path=Index}"                                Header="Index" />                            <GridViewColumn                                Width="Auto"                                DisplayMemberBinding="{Binding Path=Name}"                                Header="Name" />                            <GridViewColumn                                Width="Auto"                                DisplayMemberBinding="{Binding Path=Address}"                                Header="Address" />                            <GridViewColumn Width="120" Header="Value">                                <GridViewColumn.CellTemplate>                                    <DataTemplate>                                        <TextBox                                            Width="100"                                            Height="20"                                            Margin="0"                                            Padding="0"                                            Text="{Binding Path=FloatValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />                                    </DataTemplate>                                </GridViewColumn.CellTemplate>                            </GridViewColumn>                            <!--<GridViewColumn Width="50" Header="Hold">                                <GridViewColumn.CellTemplate>                                    <DataTemplate>                                        <CheckBox x:Name="ckHold" IsChecked="{Binding Path=HoldValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="25" Height="25" Margin="0,10,0,0"></CheckBox>                                    </DataTemplate>                                </GridViewColumn.CellTemplate>                            </GridViewColumn>-->                        </GridView>                    </ListView.View>                </ListView>            </TabItem>        </TabControl>    </Grid></UserControl>
 |