KendoUI 官方示例之 Grid / Binding to local data

本文介绍如何在Kendo UI中使用网格组件进行本地数据绑定,通过示例展示其基本用法,帮助开发者理解并掌握Kendo UI网格的数据绑定机制。
<Window x:Class="S1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:S1" mc:Ignorable="d" Icon="/A1/工具箱/视图图片/Logo/登录_微信登录.png" MinHeight="720" MinWidth="1280" WindowStyle="None" AllowsTransparency="False" WindowStartupLocation="CenterScreen" Title="MainWindow" Height="720" Width="1280"> <!--标题栏属性--> <WindowChrome.WindowChrome> <WindowChrome UseAeroCaptionButtons="False" NonClientFrameEdges="None" CaptionHeight="15" ResizeBorderThickness="0" GlassFrameThickness="0"/> </WindowChrome.WindowChrome> <!--Main窗体UI--> <Grid> <Grid.RowDefinitions> <RowDefinition Height="40"/> <RowDefinition Height="100*"/> <RowDefinition Height="27"/> </Grid.RowDefinitions> <!--标题栏--> <DockPanel Grid.Row="0" Grid.Column="0" Style="{StaticResource A__DockPanel}"> <Image Source="/A1/工具箱/视图图片/Logo/logo2.png" Width="35" Height="25" Margin="20,0,0,0" DockPanel.Dock="Left"/> <TextBlock Text="杭州微纳智感科技AOI检测系统" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="15,0,0,0" Foreground="White" FontSize="14" FontWeight="Bold"/> <StackPanel Orientation="Horizontal" Margin="0,0,0,0" DockPanel.Dock="Right" HorizontalAlignment="Right"> <Button x:Name="LoginBtu" Style="{StaticResource LoginButStyle}" Command="{Binding LoginCmd}"> <Button.Background> <ImageBrush ImageSource="{Binding Picture}" Stretch="UniformToFill"/> </Button.Background> </Button> <Button x:Name="MinBtn" Style="{StaticResource MinBtnStyle}" Content="—" Command="{Binding MinFormCmd}"/> <Button x:Name="MaxBtn" Style="{StaticResource MaxBtnStyle}" Content="□" Command="{Binding MaxFormCmd}"/> <Button x:Name="CloseBtn" Style="{StaticResource CloseBtnStyle}" Content="×" Command="{Binding ExitFormCmd}"/> </StackPanel> </DockPanel> <!--状态栏--> <Grid Grid.Row="2" Grid.Column="0" Background="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"> <!-- 主内容区域 --> <StatusBar Background="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"> <StatusBar.ItemsPanel> <ItemsPanelTemplate> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> </Grid> </ItemsPanelTemplate> </StatusBar.ItemsPanel> <!-- 左侧内容(可选) --> <StatusBarItem> <StackPanel Orientation="Horizontal"> <!--Image Margin="3,0,3,0" Source="/Data/List/Logo/气泡.png" Width="15" Height="15"/--> <TextBlock Margin="5,0,0,0" Text="🗨 就绪" Foreground="White"/> </StackPanel> </StatusBarItem> <!-- 中间填充(可选) --> <StatusBarItem Grid.Column="1"> <!-- 中间内容(留空或添加其他控件) --> </StatusBarItem> <!-- 日期时间绑定 --> <StatusBarItem Grid.Column="2"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right"> <TextBlock Margin="0" Text="[用户: " Foreground="White" FontWeight="Bold" FontSize="11"/> <TextBlock Margin="0" Text="{Binding YongHu}" Foreground="White" FontWeight="Bold" FontSize="11"/> <TextBlock Margin="0" Text="]" Foreground="White" FontWeight="Bold" FontSize="11"/> <TextBlock Margin="8,0,5,0" Text="||" Foreground="White" FontWeight="Bold" FontSize="11"/> <TextBlock Margin="5,0,0,0" Text="时间:" Foreground="White" FontWeight="Bold" FontSize="11"/> <TextBlock Text="{Binding CurrentDateTime}" Margin="3,0,5,0" Foreground="White" FontWeight="Bold" FontSize="11"/> </StackPanel> </StatusBarItem> </StatusBar> </Grid> <!--客户栏--> <Grid Grid.Row="1" Grid.Column="0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="3"/> <ColumnDefinition Width="30"/> <ColumnDefinition Width="100*"/> <ColumnDefinition Width="3"/> </Grid.ColumnDefinitions> <Grid Grid.Row="0" Grid.Column="0" Background="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> <Grid Grid.Row="0" Grid.Column="5" Background="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> <!--功能区--> <Grid Grid.Row="0" Grid.Column="1" Background="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}"> <Grid.RowDefinitions> <RowDefinition Height="auto"/> <RowDefinition Height="100*"/> <RowDefinition Height="auto"/> </Grid.RowDefinitions> <StackPanel Grid.Row="0" Grid.Column="0"> <Button x:Name="ToggleButton" ToolTip="展开菜单" Click="ToggleButton_Click" Margin="0,5,0,5"> <Button.Background> <ImageBrush ImageSource="/A1/工具箱/视图图片/Logo/展开1.png" Stretch="UniformToFill"/> </Button.Background> </Button> <Button x:Name="Text" ToolTip="右键:文件路径" Margin="0,5,0,5"> <Button.Background> <ImageBrush ImageSource="/A1/工具箱/视图图片/Logo/文件夹.png" Stretch="UniformToFill"/> </Button.Background> <Button.ContextMenu > <ContextMenu Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"> <MenuItem Header="打开图片" Command="{Binding RunningloadFormCmd}"/> <MenuItem Header="打开数据" Command="{Binding RunParamloadFormCmd}"/> <MenuItem Header="打开配置" Command="{Binding RunParamloadFormCmd}"/> </ContextMenu> </Button.ContextMenu> </Button> <Button ToolTip="右键:视觉VPP" Margin="0,5,0,5"> <Button.Background> <ImageBrush ImageSource="/A1/工具箱/视图图片/Logo/截图 (3).png" Stretch="UniformToFill"/> </Button.Background> <Button.ContextMenu > <ContextMenu Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"> <MenuItem Header="左工位VPP" Command="{Binding SizeVppCmd1}"/> <MenuItem Header="右工位VPP" Command="{Binding SizeVppCmd2}"/> <MenuItem Header="右工位灰度" Command="{Binding SizeVppCmd3}"/> <MenuItem Header="右工位灰度" Command="{Binding SizeVppCmd4}"/> </ContextMenu> </Button.ContextMenu> </Button> </StackPanel> <StackPanel Grid.Row="2" Grid.Column="0"> <Button ToolTip="右键:打开设置" Margin="0,0,0,10"> <Button.Background> <ImageBrush ImageSource="/A1/工具箱/视图图片/Logo/设置.png" Stretch="UniformToFill"/> </Button.Background> <Button.ContextMenu > <ContextMenu Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"> <MenuItem Header="设置MES参数" Command="{Binding ManualCmd}"/> <MenuItem Header="设置系统参数" Command="{Binding SysParamloadFormCmd}"/> <MenuItem Header="设置运行参数" Command="{Binding RunningloadFormCmd}"/> <MenuItem Header="设置相机参数" Command="{Binding RunParamloadFormCmd}"/> <MenuItem Header="设置光源参数" Command="{Binding LightloadFormCmd}"/> <MenuItem Header="设置缺陷参数" Command="{Binding DefectListReadCmd}"/> </ContextMenu> </Button.ContextMenu> </Button> </StackPanel> </Grid> <!--客户区--> <Grid Grid.Row="0" Grid.Column="2"> <DockPanel LastChildFill="True"> <!-- 左侧折叠菜单 --> <Border x:Name="MenuPanel" DockPanel.Dock="Left" Width="2" Background="#FFE1E1E1" BorderThickness="0,0,2,0" BorderBrush="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"> <Grid> <!-- 菜单内容区域 --> <ScrollViewer VerticalScrollBarVisibility="Auto" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"> <StackPanel x:Name="MenuContent" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/> </ScrollViewer> </Grid> </Border> <!-- 主内容区域 --> <Grid Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"> <Grid.ColumnDefinitions> <ColumnDefinition Width="70*"/> <ColumnDefinition Width="3"/> <ColumnDefinition Width="30*"/> </Grid.ColumnDefinitions> <GridSplitter Grid.Row="0" Grid.Column="1" Width="2" Grid.RowSpan="3" Background="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" HorizontalAlignment="Center" Margin="0" /> <!-- 检测尺寸缺陷显示区 --> <Grid Grid.Row="0" Grid.Column="0"> <TabControl Grid.Row="0" Grid.Column="0"> <TabItem Header="主界面" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"> <!--Lift And Right--> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="50*"/> <ColumnDefinition Width="1*"/> <ColumnDefinition Width="50*"/> </Grid.ColumnDefinitions> <GridSplitter Grid.Row="0" Grid.Column="1" Width="3" Grid.RowSpan="2" Background="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}" HorizontalAlignment="Center" /> <!--Lift--> <Grid Grid.Row="0" Grid.Column="0"> <Grid.RowDefinitions> <RowDefinition Height="12*"/> <RowDefinition Height="1*"/> <RowDefinition Height="5*"/> <RowDefinition Height="1*"/> <RowDefinition Height="83*"/> </Grid.RowDefinitions> <GridSplitter Grid.Row="1" Grid.Column="0" Height="4" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Background="LightGray" Margin="0,0,0,1" /> <GridSplitter Grid.Row="3" Grid.Column="0" Height="3" VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="LightGray" Margin="0,1" /> <Grid Grid.Row="0" Grid.Column="0" > <Label x:Name="LeftInfoLabel" Width="auto" Height="auto" FontFamily="宋体" Background="{Binding ShowResultState.ShowState1.ShowBrush}" Content="{Binding ShowResultState.ShowState1.ShowName}" FontSize="50" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" ></Label> </Grid> <Grid Grid.Row="2" Grid.Column="0"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="7*"/> <ColumnDefinition Width="10*"/> <ColumnDefinition Width="80*"/> </Grid.ColumnDefinitions> <TextBox Grid.Row="0" Grid.Column="0" Text="{Binding leftTongdao}" Margin="3,2,3,2" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> <Label Grid.Row="0" Grid.Column="1" Content="左SN:" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> <TextBox Grid.Row="0" Grid.Column="2" Text="{Binding leftCode}" Margin="3,3,3,3" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> </Grid> </Grid> <Grid Grid.Row="4" Grid.Column="0"> <DataGrid Name="DataListGrid1" CanUserAddRows="False" CanUserDeleteRows="False" AutoGenerateColumns="False" HeadersVisibility="All" ItemsSource="{Binding leftSizeTypeList}" Grid.ColumnSpan="2" Margin="0" > <DataGrid.Columns> <DataGridTextColumn Header="ID" Binding="{Binding SizeID}" IsReadOnly= "True" Width="2*"/> <DataGridTextColumn Header="Name" Binding="{Binding SizeName}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Standard" Binding="{Binding SizeStandard}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Upper" Binding="{Binding SizeUpper}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Lower" Binding="{Binding SizeLower}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Value" Binding="{Binding SizeValue}" IsReadOnly= "True" Width="3*"/> <DataGridTemplateColumn Header="Result" Width="4*"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBox Width="75" Height="25" BorderThickness="0" Text="{Binding SizeRes}" Foreground="White" Background="{Binding BackColor}"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> </Grid> </Grid> <!--Right--> <Grid Grid.Row="0" Grid.Column="2"> <Grid.RowDefinitions> <RowDefinition Height="12*"/> <RowDefinition Height="1*"/> <RowDefinition Height="5*"/> <RowDefinition Height="1*"/> <RowDefinition Height="83*"/> </Grid.RowDefinitions> <GridSplitter Grid.Row="1" Grid.Column="0" Height="3" VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="LightGray" Margin="0,1" /> <GridSplitter Grid.Row="3" Grid.Column="0" Height="3" VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="LightGray" Margin="0,1" /> <Grid Grid.Row="0" Grid.Column="0"> <Label x:Name="RightInfoLabel" Width="auto" Height="auto" Margin="0" FontFamily="宋体" Background="{Binding ShowResultState.ShowState2.ShowBrush}" Content="{Binding ShowResultState.ShowState2.ShowName}" FontSize="50" VerticalContentAlignment="Center" HorizontalContentAlignment="Center"></Label> </Grid> <Grid Grid.Row="2" Grid.Column="0"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="7*"/> <ColumnDefinition Width="10*"/> <ColumnDefinition Width="80*"/> </Grid.ColumnDefinitions> <TextBox Grid.Row="0" Grid.Column="0" Text="{Binding rightTongdao}" Margin="3,2,3,2" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> <Label Grid.Row="0" Grid.Column="1" Content="右SN:" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"></Label> <TextBox Grid.Row="0" Grid.Column="2" Text="{Binding rightCode}" Margin="1,1,1,1" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> </Grid> </Grid> <Grid Grid.Row="4" Grid.Column="0"> <DataGrid Name="DataListGrid2" CanUserAddRows="False" CanUserDeleteRows="False" AutoGenerateColumns="False" HeadersVisibility="All" ItemsSource="{Binding rightSizeTypeList}" Grid.ColumnSpan="2" Margin="0" > <DataGrid.Columns> <DataGridTextColumn Header="ID" Binding="{Binding SizeID}" IsReadOnly= "True" Width="2*"/> <DataGridTextColumn Header="Name" Binding="{Binding SizeName}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Standard" Binding="{Binding SizeStandard}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Upper" Binding="{Binding SizeUpper}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Lower" Binding="{Binding SizeLower}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Value" Binding="{Binding SizeValue}" IsReadOnly= "True" Width="3*"/> <DataGridTemplateColumn Header="Result" Width="4*"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBox Width="75" Height="25" BorderThickness="0" Text="{Binding SizeRes}" Foreground="White" Background="{Binding BackColor}"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> </Grid> </Grid> </Grid> </TabItem> </TabControl> </Grid> <!-- 实时监控/生产数据/数据统计 --> <Grid Grid.Row="0" Grid.Column="2"> <TabControl> <TabItem Header="实时监控"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="30*"/> <RowDefinition Height="3"/> <RowDefinition Height="30*"/> <RowDefinition Height="3"/> <RowDefinition Height="30*"/> </Grid.RowDefinitions> <GridSplitter Grid.Row="1" Grid.Column="0" Height="2" VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="LightGray" Margin="0,1" /> <GridSplitter Grid.Row="3" Grid.Column="0" Height="2" VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="LightGray" Margin="0,1" /> <Grid Grid.Row="0" Grid.Column="0"> </Grid> <Grid Grid.Row="2" Grid.Column="0"> </Grid> <ScrollViewer Grid.Column="0" Grid.Row="3" Background="White" BorderBrush="AliceBlue" Margin="3" Grid.RowSpan="2" > <TextBlock x:Name="SystemMessage" TextWrapping="Wrap" Text="{Binding MsgInfo}" Background="White" Foreground="Black" /> </ScrollViewer> </Grid> </TabItem> <TabItem Header="生产数据"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="50*"/> <ColumnDefinition Width="3"/> <ColumnDefinition Width="50*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="50*"/> <RowDefinition Height="3"/> <RowDefinition Height="50*"/> <RowDefinition Height="3"/> <RowDefinition Height="50*"/> </Grid.RowDefinitions> <GridSplitter Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" Height="3" VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="LightGray" /> <GridSplitter Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="3" Height="3" VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="LightGray" /> <GridSplitter Grid.Column="1" Grid.Row="0" Width="3" Grid.RowSpan="5" Background="LightGray" HorizontalAlignment="Center" /> <WindowsFormsHost Grid.Row="0" Grid.Column="0" Name="ChartShow1" /> <WindowsFormsHost Grid.Row="0" Grid.Column="2" Name="ChartShow2" /> <WindowsFormsHost Grid.Row="2" Grid.Column="0" Name="ChartShow3" /> <WindowsFormsHost Grid.Row="2" Grid.Column="2" Name="ChartShow4" /> <WindowsFormsHost Grid.Row="4" Grid.Column="0" Name="ChartShow5" /> <WindowsFormsHost Grid.Row="4" Grid.Column="2" Name="ChartShow6" /> </Grid> </TabItem> <TabItem Header="数据统计"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="30"/> <RowDefinition Height="3"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <!--日期选择--> <Grid Grid.Row="0" Height="auto"> <Grid.ColumnDefinitions> <ColumnDefinition Width="2*"/> <ColumnDefinition Width="1"/> <ColumnDefinition Width="2*"/> <ColumnDefinition Width="1"/> <ColumnDefinition Width="1*"/> </Grid.ColumnDefinitions> <DatePicker/> <ComboBox Grid.Column="2" SelectedIndex="{Binding LGDateSelectIndex}" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.ColumnSpan="1" Margin="1"> <ComboBoxItem Content="白班合计"/> <ComboBoxItem Content="晚班合计"/> <ComboBoxItem Content="白晚班合计"/> <ComboBoxItem Content="月合计"/> <ComboBoxItem Content="年合计"/> </ComboBox> <!--查询按钮--> <Grid Grid.Column="4"> <Button Margin="1" Content="查询" Width="auto" Height="auto" Command="{Binding SearchProductDataCmd}" Foreground="{DynamicResource {x:Static SystemColors.ActiveCaptionTextBrushKey}}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> </Grid> </Grid> <!--数据统计显示--> <Grid Grid.Row="2"> <DataGrid Name="ProductSearchGrid" CanUserAddRows="False" CanUserDeleteRows="False" AutoGenerateColumns="False" HeadersVisibility="All" ItemsSource="{Binding ProductSearchGridLists}" SelectedIndex="{Binding ProductSearchSelectIndex}" FontSize="13" Grid.ColumnSpan="2" Margin="1" > <DataGrid.Columns> <DataGridTextColumn Header="Time" Binding="{Binding Time}" IsReadOnly="True" Width="30*"/> <DataGridTextColumn Header="Total" Binding="{Binding Total}" IsReadOnly="True" Width="25*"/> <DataGridTextColumn Header="OK" Binding="{Binding OK}" IsReadOnly="True" Width="25*"/> <DataGridTextColumn Header="NG" Binding="{Binding NG}" IsReadOnly="True" Width="25*"/> </DataGrid.Columns> </DataGrid> </Grid> </Grid> </TabItem> </TabControl> </Grid> </Grid> </DockPanel> </Grid> </Grid> </Grid> </Window> DatePicker 的弹出日历标题显示太窄
11-01
<UserControl x:Class="LDMOPTIC.MeasureItem.View_IVL2" 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:LDMOPTIC.MeasureItem" xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf" xmlns:hc="https://handyorg.github.io/handycontrol" xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:local1="clr-namespace:Utility;assembly=Utility" d:DataContext="{d:DesignInstance local:ViewModel_IVL2}" d:DesignHeight="800" d:DesignWidth="1200" mc:Ignorable="d"> <UserControl.DataContext> <local:ViewModel_IVL2/> </UserControl.DataContext> <UserControl.Resources> <local:IVLChartTypeConverter x:Key="IVLChartConverter"/> <local1:BitmapToImageSourceConverter x:Key="BitmapToImageSourceConverter" /> <local:TestModeToVisibilityConverter x:Key="TestModeToVisibilityConverter" /> </UserControl.Resources> <Grid Background="White"> <Grid.RowDefinitions> <RowDefinition Height="40" /> <RowDefinition Height="auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Border Grid.Row="1" BorderThickness="1" BorderBrush="LightGray" CornerRadius="4" /> <Border Grid.Row="2" BorderThickness="1" BorderBrush="LightGray" CornerRadius="4" /> <Grid Grid.Row="0" Background="#F3F4F6"> <DockPanel LastChildFill="True"> <TextBlock Margin="10,0" HorizontalAlignment="Left" Style="{StaticResource TextBlockSubTitleBold}" Text="多工位IVL"/> </DockPanel> </Grid> <Grid Grid.Row="1"> <StackPanel Orientation="Horizontal" Margin="4"> <TextBlock Text="当前测试进度:" Style="{StaticResource TextBlockDefaultPrimary}" Margin=" 5,2"/> <ProgressBar Value="{Binding TestProgressValue}" Width="400" Margin="5,2"/> <TextBlock Text="测试用时:" Style="{StaticResource TextBlockDefaultPrimary}" Margin=" 5,2"/> <TextBox Width="80" Height="20" Margin="5,2" Text="{Binding TestTotalTime ,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> <TextBlock Text="s" Style="{StaticResource TextBlockBaseStyle}" Margin=" 5,2"/> </StackPanel> </Grid> <Grid Grid.Row="2"> <TabControl Margin="5" Style="{StaticResource TabControlCapsuleSolid}"> <TabItem Header="IVL曲线"> <Grid> <TabControl ItemsSource="{Binding OutputModel_MultiStationIVL.IVLDataWorkStationModels,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding WorkStationSelectedItemIVL, Mode=TwoWay}" VirtualizingPanel.IsVirtualizing="False" VirtualizingPanel.VirtualizationMode="Standard" Style="{StaticResource TabControlBaseStyle}" Margin="2"> <!-- 外层:工位 --> <TabControl.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding WorkStationName}"/> </DataTemplate> </TabControl.ItemTemplate> <!-- 外层内容:嵌套点位 TabControl --> <TabControl.ContentTemplate> <DataTemplate> <TabControl ItemsSource="{Binding IVLDataPointModels,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding DataContext.PointSelectedItemIVL, Mode=TwoWay,RelativeSource={RelativeSource AncestorType=UserControl}}" Style="{StaticResource TabControlBaseStyle}" VirtualizingPanel.IsVirtualizing="False" VirtualizingPanel.VirtualizationMode="Standard" Margin="2"> <!-- 中层:点位 --> <TabControl.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding PointName}"/> </DataTemplate> </TabControl.ItemTemplate> <!-- 内层测试模式 TabControl --> <TabControl.ContentTemplate> <DataTemplate> <TabControl ItemsSource="{Binding IVLDataTestTypeModels,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding DataContext.TestTypeSelectedItemIVL, Mode=TwoWay,RelativeSource={RelativeSource AncestorType=UserControl}}" Style="{StaticResource TabControlBaseStyle}" VirtualizingPanel.IsVirtualizing="False" VirtualizingPanel.VirtualizationMode="Standard" Margin="2"> <!-- 内层:测试模式 --> <TabControl.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding TestModeType}"/> </DataTemplate> </TabControl.ItemTemplate> <!-- 测试模式内容:图表和数据 --> <TabControl.ContentTemplate> <DataTemplate> <Grid> <Grid.RowDefinitions> <RowDefinition Height="5*"/> <RowDefinition Height="3*"/> </Grid.RowDefinitions> <Grid Grid.Row="0"> <ScrollViewer VerticalScrollBarVisibility="Auto"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="AUTO"/> </Grid.RowDefinitions> <!-- 动态生成曲线图 --> <ItemsControl ItemsSource="{Binding IVLChartDataDictionary, UpdateSourceTrigger=PropertyChanged}" VirtualizingPanel.VirtualizationMode="Standard" VirtualizingPanel.CacheLengthUnit="Item" VirtualizingPanel.CacheLength="10,10"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <UniformGrid Columns="3" IsItemsHost="True" VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.VirtualizationMode="Standard"/> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemTemplate> <DataTemplate> <Border BorderThickness="0.5" BorderBrush="LightGray" CornerRadius="6"> <lvc:CartesianChart Margin="3" DisableAnimations="True" Foreground="Black" LegendLocation="Top" Zoom="Xy" Height="213"> <lvc:CartesianChart.Series> <lvc:LineSeries Title="{Binding Key}" DataLabels="False" Fill="Transparent" LineSmoothness="1" PointGeometrySize="3" Stroke="{Binding Key, Converter={StaticResource IVLChartConverter}, ConverterParameter=LineColor}" Values="{Binding Value,UpdateSourceTrigger=PropertyChanged}"/> </lvc:CartesianChart.Series> <lvc:CartesianChart.AxisX> <lvc:Axis Title="{Binding Key, Converter={StaticResource IVLChartConverter}, ConverterParameter=XTitle}" LabelFormatter="{Binding DataContext.Formatter , RelativeSource={RelativeSource AncestorType={x:Type local:ViewModel_IVL}}}"/> </lvc:CartesianChart.AxisX> <lvc:CartesianChart.AxisY> <lvc:Axis Title="{Binding Key, Converter={StaticResource IVLChartConverter}, ConverterParameter=YTitle}" LabelFormatter="{Binding DataContext.Formatter , RelativeSource={RelativeSource AncestorType={x:Type local:ViewModel_IVL}}}"/> </lvc:CartesianChart.AxisY> </lvc:CartesianChart> </Border> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> <Grid Grid.Row="1"> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto"/> <ColumnDefinition Width="auto"/> </Grid.ColumnDefinitions> <Border Grid.Column="0" BorderThickness="0.5" BorderBrush="LightGray" CornerRadius="6"> <Image Source="{Binding ImageSource1931, Converter={StaticResource BitmapToImageSourceConverter}}" Margin="2" MaxWidth="400" /> </Border> <Border Grid.Column="1" BorderThickness="0.5" BorderBrush="LightGray" CornerRadius="6" > <Image Source="{Binding ImageSource1976, Converter={StaticResource BitmapToImageSourceConverter}}" Margin="2" MaxWidth="400"/> </Border> </Grid> </Grid> </ScrollViewer> </Grid> <Grid Grid.Row="1"> <!-- 此处绑定测试模式下的IVL数据 --> <DataGrid x:Name="IVLTestTypeDataGrid" ItemsSource="{Binding IVLDataModels}" Margin="6" IsReadOnly="True" AutoGenerateColumns="False" CanUserAddRows="False" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Auto" Style="{StaticResource DataGrid.Small}"> <DataGrid.Columns> <DataGridTextColumn Header="Temp(℃)" Binding="{Binding Temptrue}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=Temptrue}" /> <DataGridTextColumn Header="J (mA/cm²)" Binding="{Binding J}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=J}" /> <DataGridTextColumn Header="I (mA)" Binding="{Binding I}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=I}" /> <DataGridTextColumn Header="V (V)" Binding="{Binding V}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=V}" /> <DataGridTextColumn Header="L (cd/m²)" Binding="{Binding L}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=L}" /> <DataGridTextColumn Header="C.E.(cd/A)" Binding="{Binding CE}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=DataGrid}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=CE}" /> <DataGridTextColumn Header="P.E.(lm/W)" Binding="{Binding PE}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=PE}" /> <DataGridTextColumn Header="EQE(%)" Binding="{Binding EQE}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=EQE}" /> <DataGridTextColumn Header="CIE_x" Binding="{Binding CIEx}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=CIEx}" /> <DataGridTextColumn Header="CIE_y" Binding="{Binding CIEy}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=CIEy}" /> <DataGridTextColumn Header="CIE_u'" Binding="{Binding CIEu}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=CIEu}" /> <DataGridTextColumn Header="CIE_v'" Binding="{Binding CIEv}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=CIEv}" /> <DataGridTextColumn Header="CCT" Binding="{Binding CCT}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=CCT}" /> <DataGridTextColumn Header="WLP(λP)" Binding="{Binding WLP}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=WLP}" /> <DataGridTextColumn Header="CWL" Binding="{Binding CWL}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=CWL}" /> <DataGridTextColumn Header="FWHM" Binding="{Binding FWHM}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=TabControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=FWHM}" /> <DataGridTextColumn Header="Cp(F)" Binding="{Binding Cp}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=UserControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=Cp}" /> <DataGridTextColumn Header="D" Binding="{Binding D}" Visibility="{Binding DataContext.TestTypeSelectedItemIVL.TestModeType, RelativeSource={RelativeSource AncestorType=UserControl}, Converter={StaticResource TestModeToVisibilityConverter}, ConverterParameter=D}" /> </DataGrid.Columns> </DataGrid> </Grid> </Grid> </DataTemplate> </TabControl.ContentTemplate> </TabControl> </DataTemplate> </TabControl.ContentTemplate> </TabControl> </DataTemplate> </TabControl.ContentTemplate> </TabControl> </Grid> </TabItem> <TabItem Header="可视角图形"> <TabControl ItemsSource="{Binding OutputModel_MultiStationIVL.VADataWorkStationModels,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding WorkStationSelectedItemVA, Mode=TwoWay}" VirtualizingPanel.IsVirtualizing="False" VirtualizingPanel.VirtualizationMode="Standard" Style="{StaticResource TabControlBaseStyle}" Margin="2"> <!-- 外层:工位 --> <TabControl.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding WorkStationName}"/> </DataTemplate> </TabControl.ItemTemplate> <!-- 外层内容:嵌套点位TabControl --> <TabControl.ContentTemplate> <DataTemplate> <TabControl ItemsSource="{Binding VADataPointModels}" SelectedItem="{Binding DataContext.PointSelectedItemVA, Mode=TwoWay,RelativeSource={RelativeSource AncestorType=UserControl}}" Style="{StaticResource TabControlBaseStyle}" VirtualizingPanel.IsVirtualizing="False" VirtualizingPanel.VirtualizationMode="Standard" Margin="2"> <!-- 中层:点位 --> <TabControl.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding PointName}"/> </DataTemplate> </TabControl.ItemTemplate> <!-- 新增:内层测试模式TabControl --> <TabControl.ContentTemplate> <DataTemplate> <TabControl ItemsSource="{Binding VADataTestTypeModels}" SelectedItem="{Binding DataContext.TestTypeSelectedItemVA, Mode=TwoWay,RelativeSource={RelativeSource AncestorType=UserControl}}" Style="{StaticResource TabControlBaseStyle}" VirtualizingPanel.IsVirtualizing="False" VirtualizingPanel.VirtualizationMode="Standard" Margin="2"> <!-- 内层:测试模式 --> <TabControl.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding TestModeType}"/> </DataTemplate> </TabControl.ItemTemplate> <!-- 测试模式内容:图表和数据 --> <TabControl.ContentTemplate> <DataTemplate> <Grid> <Grid.RowDefinitions> <RowDefinition Height="2*"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Grid Grid.Row="0"> <UniformGrid Columns="2" Rows="1"> <!-- 添加图1 --> <lvc:CartesianChart Margin="3" DisableAnimations="True" Foreground="Black" LegendLocation="Top" Zoom="Xy"> <lvc:CartesianChart.Series> <lvc:LineSeries Title="Angle-L" DataLabels="True" Fill="Transparent" LineSmoothness="1" PointGeometrySize="6" Stroke="LightSalmon" Values="{Binding AngleLumValues}" /> </lvc:CartesianChart.Series> <lvc:CartesianChart.AxisX> <lvc:Axis Title="Angle(°)" LabelFormatter="{Binding Formatter , RelativeSource={RelativeSource AncestorType={x:Type local:ViewModel_IVL}}}" /> </lvc:CartesianChart.AxisX> <lvc:CartesianChart.AxisY> <lvc:Axis Title="L(cd/m^2)" LabelFormatter="{Binding Formatter , RelativeSource={RelativeSource AncestorType={x:Type local:ViewModel_IVL}}}" /> </lvc:CartesianChart.AxisY> </lvc:CartesianChart> <!-- 添加图2 --> <lvc:CartesianChart Margin="3" DisableAnimations="True" Foreground="Black" LegendLocation="Top" Zoom="Xy"> <lvc:CartesianChart.Series> <lvc:LineSeries Title="Angle-J" DataLabels="True" Fill="Transparent" LineSmoothness="1" PointGeometrySize="6" Stroke="LightGreen" Values="{Binding AngleJValues}" /> </lvc:CartesianChart.Series> <lvc:CartesianChart.AxisX> <lvc:Axis Title="Angle(°)" LabelFormatter="{Binding Formatter , RelativeSource={RelativeSource AncestorType={x:Type local:ViewModel_IVL}}}" /> </lvc:CartesianChart.AxisX> <lvc:CartesianChart.AxisY> <lvc:Axis Title="J(mA/cm²)" LabelFormatter="{Binding Formatter , RelativeSource={RelativeSource AncestorType={x:Type local:ViewModel_IVL}}}" /> </lvc:CartesianChart.AxisY> </lvc:CartesianChart> </UniformGrid> </Grid> <Grid Grid.Row="1"> <!-- 此处绑定测试模式下的VA数据 --> <DataGrid ItemsSource="{Binding VADataModels}" Margin="6" IsReadOnly="True" AutoGenerateColumns="False" CanUserAddRows="False" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Auto" Style="{StaticResource DataGrid.Small}"> <DataGrid.Columns> <DataGridTextColumn Header="Angle(°)" Binding="{Binding Angle}" /> <DataGridTextColumn Header="L (cd/m²)" Binding="{Binding L}" /> <DataGridTextColumn Header="L Decay(%)" Binding="{Binding LDecay}" /> <DataGridTextColumn Header="J (mA/cm²)" Binding="{Binding J}" /> <DataGridTextColumn Header="I (mA)" Binding="{Binding I}" /> <DataGridTextColumn Header="V (V)" Binding="{Binding V}" /> <DataGridTextColumn Header="C.E.(cd/A)" Binding="{Binding CE}" /> <DataGridTextColumn Header="P.E.(lm/W)" Binding="{Binding PE}" /> <DataGridTextColumn Header="EQE(%)" Binding="{Binding EQE}" /> </DataGrid.Columns> </DataGrid> </Grid> </Grid> </DataTemplate> </TabControl.ContentTemplate> </TabControl> </DataTemplate> </TabControl.ContentTemplate> </TabControl> </DataTemplate> </TabControl.ContentTemplate> </TabControl> </TabItem> </TabControl> </Grid> </Grid> </UserControl> using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Data; namespace LDMOPTIC.MeasureItem { public class TestModeToVisibilityConverter: IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null || parameter == null) return Visibility.Visible; TestModeType testMode = (TestModeType)value; string columnName = parameter.ToString(); // CP1、CP2、CP3模式的特殊处理 if (testMode == TestModeType.CP1 || testMode == TestModeType.CP2 || testMode == TestModeType.CP3) { // 只显示V、Cp、D列,其他列隐藏 return columnName == "V" || columnName == "Cp" || columnName == "D" ? Visibility.Visible : Visibility.Collapsed; } else { // 其他模式隐藏Cp和D列 return columnName == "Cp" || columnName == "D" ? Visibility.Collapsed : Visibility.Visible; } } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } } using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LDMOPTIC.MeasureItem { /// <summary> /// 测试模式类型 /// </summary> public enum TestModeType { CV, // V模式 CC, // I模式 CS, // CS模式(可视角) CP1, // CP1模式 CP2, // CP2模式 CP3, // CP3模式 TempVar1, //变温IVL1模式 TempVar2, //变温IVL2模式 TempVar3, //变温IVL3模式 Custom1, // 自定义1模式 Custom2, // 自定义2模式 } }using LiveCharts; using System; using System.Drawing; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Windows.Forms; using LDMOPTIC.Device; using Newtonsoft.Json; using System.Threading; using System.Reflection; using DataTable = System.Data.DataTable; using System.ComponentModel; using System.Data; using System.Windows.Media; using Microsoft.Office.Interop.Excel; using Utility; using Timer = System.Threading.Timer; using System.Diagnostics; using OpenTK.Graphics.OpenGL; using HalconDotNet; using System.Security.Cryptography; using LDMOPTIC.SysSetting; using LiveCharts.Wpf; namespace LDMOPTIC.MeasureItem { public class ViewModel_IVL2 : ViewModel_TestItemTemplate { // 定义委托 public Action<TestedDeviceModel> TestStatusUpdated; //更新ViewModel_Recipe测试器件测试状态 委托 public Action<string> RemovePendingTested; //触发ViewModel_Recipe的待测试集合删除已测试项 委托 public System.Action ReciveFSDeviceID; //触发ViewModel_Recipe的定时读取前端文件器件编号相关数据 委托 public Action<string, string> UpdateLuminousColor; //触发ViewModel_Recipe的已测试集合更新器件发光颜色 委托 private readonly ViewModel_Recipe viewModel_Recipe = ViewModel_Recipe.Instance; // 使用单例 private bool hasDCExecuted = false; // 特性DC设置是否执行完毕 HDevelopExportIVL2 hDevelopExport = null; public override void ViewModelInitialize() { IVLGlobal.CurWksTestName = Input.TestStationItem; //当前工位名称 //供映射文件使用 TestStatusUpdated = viewModel_Recipe.OnTestStatusUpdated; RemovePendingTested = viewModel_Recipe.OnRemovePendingTested; viewModel_Recipe.OnPendingDevicesUpdated = OnGetPendingDevices; ReciveFSDeviceID = viewModel_Recipe.OnGenerateDeviceID; UpdateLuminousColor = viewModel_Recipe.OnUpdateLuminousColor; //1.加载启用工位配置工位配置 LoadWorkStations(); //2.加载工位点位和继电器参数配置 LoadPointRelayMapping(); //3.加载Recipe配置 LoadRecipeConfig(); //4.加载LCR继电器映射 LoadLCRRelayMappings(); //5.加载温度计工位映射 LoadThermometerMappings(); //6.加载轴工位映射 LoadAxisMappings(); //7.生成当前所有工位实例 GenerateIVLDataWorkStationModels(); GenerateVADataWorkStationModels(); //8.触发统计数据 //MonthlyWorkloadStatsTick(); //9.生成前端文件读取定时任务 //FSDeviceIDTick(); hDevelopExport = new HDevelopExportIVL2(); } private bool stopOuterLoop = false; // 添加一个标志变量 InputModel_IVL2 Input { get => ItemInfo as InputModel_IVL2; } public Func<double, string> Formatter = value => value.ToString("0.00"); // 图表属性 public IVLConfigure2Model IVLConfig { get; set; } = new IVLConfigure2Model(); //IVL配置信息 public ObservableCollection<ViewModel_WorkStation> WorkStations { get; set; } = new ObservableCollection<ViewModel_WorkStation>(); //工位配置信息 public ObservableCollection<PointRelayMapping> PointRelayMappings { get; set; } = new ObservableCollection<PointRelayMapping>(); //继电器I点和工位映射信息 public ObservableCollection<PendingDeviceModel> PendingDevices { get; set; } = new ObservableCollection<PendingDeviceModel>(); //待测器件集合(测试管理) public ObservableCollection<MappingStationDeviceModel> MappingStationDevices { get; set; } = new ObservableCollection<MappingStationDeviceModel>(); //器件编号工位映射关系集合(测试管理) public ObservableCollection<TestedDeviceModel> TestedDevices { get; set; } = new ObservableCollection<TestedDeviceModel>(); //已测试器件集合 (测试管理) public ObservableCollection<LCRRelayMapping> LCRRelayMappings { get; set; } = new ObservableCollection<LCRRelayMapping>(); //LCR继电器I点和工位映射信息 private ObservableCollection<StationThermometerMapping> StationThermometerMappings { get; set; } = new ObservableCollection<StationThermometerMapping>(); //温度计和工位映射信息 private ObservableCollection<StationAxisMapping> StationAxisMappings { get; set; } = new ObservableCollection<StationAxisMapping>(); //工位和轴映射信息 private ObservableCollection<IVLInfo> IVLInfoList { get; set; } = new ObservableCollection<IVLInfo>(ConfigFrame.GetConfigObservableCollection<IVLInfo>()); //IVL信息 private OutputModel_MultiStationIVL2 outputModel_MultiStationIVL = new OutputModel_MultiStationIVL2(); public OutputModel_MultiStationIVL2 OutputModel_MultiStationIVL //IVL和VA所有相关数据 { get { return outputModel_MultiStationIVL; } set { outputModel_MultiStationIVL = value; OnPropertyChanged(); } } private IVLDataWorkStationModel _workStationSelectedItemIVL; //1.IVL选中的工作站 public IVLDataWorkStationModel WorkStationSelectedItemIVL { get { return _workStationSelectedItemIVL; } set { _workStationSelectedItemIVL = value; OnPropertyChanged(); } } private IVLDataPointModel _pointSelectedItemIVL; //2.IVL当前选中的点 public IVLDataPointModel PointSelectedItemIVL { get { return _pointSelectedItemIVL; } set { _pointSelectedItemIVL = value; OnPropertyChanged(); } } private IVLDataTestTypeModel _testTypeSelectedItemIVL; //3.IVL当前选中的测试类型 public IVLDataTestTypeModel TestTypeSelectedItemIVL { get { return _testTypeSelectedItemIVL; } set { _testTypeSelectedItemIVL = value; OnPropertyChanged(); } } 对于目前DataGrid x:Name="IVLTestTypeDataGrid"想要实现跟随外层Tabcontrol测试项的选择来决定表中各列内容的显示,目前使用的转换器并不会触发,可能是找不到上下文的原因,请问,该如何修改代码
06-23
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值