360 lines
19 KiB
XML
360 lines
19 KiB
XML
<controls:MaterialWindow
|
||
x:Class="Szmedi.RvKits.MEPTools.FacilityInfoProcessView"
|
||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||
xmlns:controls="clr-namespace:Szmedi.RvKits.Controls"
|
||
xmlns:conv="clr-namespace:Szmedi.RvKits.Converters"
|
||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||
xmlns:local="clr-namespace:Szmedi.RvKits.MEPTools"
|
||
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||
Title="设备信息"
|
||
Width="900"
|
||
Height="600"
|
||
d:DataContext="{d:DesignInstance Type=local:FacilityInfoProcessViewModel}"
|
||
mc:Ignorable="d">
|
||
<controls:MaterialWindow.Resources>
|
||
<ResourceDictionary>
|
||
<ResourceDictionary.MergedDictionaries>
|
||
<ResourceDictionary Source="pack://application:,,,/Szmedi.RvKits;component/WPFUI.xaml" />
|
||
</ResourceDictionary.MergedDictionaries>
|
||
<Style x:Key="CenteredTextBlockStyle" TargetType="{x:Type TextBlock}">
|
||
<Setter Property="VerticalAlignment" Value="Center" />
|
||
</Style>
|
||
<conv:NullOrEmptyToBooleanConverter x:Key="NullOrEmptyToBooleanConverter" />
|
||
</ResourceDictionary>
|
||
|
||
</controls:MaterialWindow.Resources>
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="*" />
|
||
<RowDefinition Height="Auto" />
|
||
<RowDefinition Height="Auto" />
|
||
</Grid.RowDefinitions>
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="*" MinWidth="200" />
|
||
<ColumnDefinition Width="Auto" />
|
||
<ColumnDefinition Width="250" MinWidth="100" />
|
||
</Grid.ColumnDefinitions>
|
||
<GroupBox materialDesign:GroupBoxAssist.HeaderPadding="4" Header="设备表">
|
||
<DataGrid
|
||
x:Name="Facilities"
|
||
Margin="-4"
|
||
d:ItemsSource="{d:SampleData ItemCount=5}"
|
||
materialDesign:DataGridAssist.CellPadding="8,0"
|
||
materialDesign:DataGridAssist.ColumnHeaderPadding="6"
|
||
AutoGenerateColumns="False"
|
||
CanUserAddRows="False"
|
||
FrozenColumnCount="2"
|
||
ItemsSource="{Binding Items}"
|
||
RowDetailsVisibilityMode="VisibleWhenSelected"
|
||
SelectedItem="{Binding SelectedFacility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
|
||
<DataGrid.RowStyle>
|
||
<Style TargetType="DataGridRow">
|
||
<Setter Property="ToolTip" Value="{Binding ErrorMessage}" />
|
||
<Setter Property="Background" Value="Transparent" />
|
||
<Style.Triggers>
|
||
<DataTrigger Binding="{Binding ErrorMessage, Converter={StaticResource NullOrEmptyToBooleanConverter}}" Value="True">
|
||
<Setter Property="Background" Value="IndianRed" />
|
||
</DataTrigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
</DataGrid.RowStyle>
|
||
<DataGrid.RowDetailsTemplate>
|
||
<DataTemplate DataType="local:FacilityItem">
|
||
<GroupBox materialDesign:GroupBoxAssist.HeaderPadding="4" Header="参数列表">
|
||
<ItemsControl d:ItemsSource="{d:SampleData ItemCount=5}" ItemsSource="{Binding Parameters}">
|
||
<ItemsControl.ItemTemplate>
|
||
<DataTemplate DataType="local:ParameterItem">
|
||
<TextBox
|
||
Padding="2"
|
||
HorizontalAlignment="Left"
|
||
VerticalContentAlignment="Center"
|
||
materialDesign:HintAssist.IsFloating="False"
|
||
materialDesign:TextFieldAssist.PrefixText="{Binding Name, StringFormat={}{0}:}"
|
||
Style="{StaticResource MaterialDesignTextBox}"
|
||
Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}" />
|
||
</DataTemplate>
|
||
</ItemsControl.ItemTemplate>
|
||
</ItemsControl>
|
||
</GroupBox>
|
||
</DataTemplate>
|
||
</DataGrid.RowDetailsTemplate>
|
||
<DataGrid.Columns>
|
||
|
||
<DataGridCheckBoxColumn Binding="{Binding IsSelected}">
|
||
<DataGridCheckBoxColumn.Header>
|
||
<CheckBox
|
||
VerticalContentAlignment="Center"
|
||
Content="全选"
|
||
IsChecked="{Binding DataContext.IsAllItemsSelected, RelativeSource={RelativeSource AncestorType=DataGrid}}" />
|
||
</DataGridCheckBoxColumn.Header>
|
||
<DataGridCheckBoxColumn.HeaderStyle>
|
||
<Style BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}" TargetType="{x:Type DataGridColumnHeader}">
|
||
<Setter Property="HorizontalContentAlignment" Value="Center" />
|
||
</Style>
|
||
</DataGridCheckBoxColumn.HeaderStyle>
|
||
</DataGridCheckBoxColumn>
|
||
<DataGridTextColumn
|
||
Binding="{Binding Name}"
|
||
ElementStyle="{StaticResource CenteredTextBlockStyle}"
|
||
Header="设备"
|
||
IsReadOnly="True" />
|
||
<DataGridTextColumn
|
||
Binding="{Binding Brand}"
|
||
ElementStyle="{StaticResource CenteredTextBlockStyle}"
|
||
Header="品牌"
|
||
IsReadOnly="True" />
|
||
<DataGridTextColumn
|
||
Binding="{Binding Specification}"
|
||
ElementStyle="{StaticResource CenteredTextBlockStyle}"
|
||
Header="设备型号"
|
||
IsReadOnly="True" />
|
||
<DataGridTextColumn
|
||
Binding="{Binding Stations}"
|
||
ElementStyle="{StaticResource CenteredTextBlockStyle}"
|
||
Header="部署范围"
|
||
IsReadOnly="True" />
|
||
<DataGridTemplateColumn Header="关联族">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<Button
|
||
Command="{Binding DataContext.SelectInstanceCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}"
|
||
CommandParameter="{Binding}"
|
||
Content="{Binding DisplayText}"
|
||
ToolTip="点击按钮重新选择关联到的族" />
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
</DataGridTemplateColumn>
|
||
</DataGrid.Columns>
|
||
</DataGrid>
|
||
</GroupBox>
|
||
<GridSplitter
|
||
Grid.Row="0"
|
||
Grid.RowSpan="2"
|
||
Grid.Column="1"
|
||
Width="5"
|
||
HorizontalAlignment="Stretch"
|
||
VerticalAlignment="Stretch"
|
||
Background="Gray"
|
||
ShowsPreview="True" />
|
||
<Grid Grid.Row="1" Grid.Column="0">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="Auto" />
|
||
<ColumnDefinition Width="*" />
|
||
</Grid.ColumnDefinitions>
|
||
<CheckBox
|
||
Grid.Row="0"
|
||
Grid.Column="0"
|
||
Content="包含全线"
|
||
IsChecked="{Binding ContainsAllLines}" />
|
||
<TextBox
|
||
Grid.Row="0"
|
||
Grid.Column="1"
|
||
materialDesign:HintAssist.Hint="搜索设备名、品牌、型号、部署范围"
|
||
Text="{Binding SearchText, UpdateSourceTrigger=PropertyChanged}" />
|
||
|
||
</Grid>
|
||
<!--<Grid Grid.Column="2">
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="*" MinHeight="100" />
|
||
<RowDefinition Height="Auto" />
|
||
<RowDefinition Height="200" MinHeight="100" />
|
||
</Grid.RowDefinitions>
|
||
<GroupBox Header="参数表">
|
||
<DataGrid
|
||
Margin="-4"
|
||
AutoGenerateColumns="False"
|
||
CanUserAddRows="False"
|
||
ItemsSource="{Binding ElementName=Facilities, Path=SelectedItem.Parameters}">
|
||
<DataGrid.Columns>
|
||
<DataGridTextColumn
|
||
Binding="{Binding Name}"
|
||
ElementStyle="{StaticResource CenteredTextBlockStyle}"
|
||
Header="参数"
|
||
IsReadOnly="True" />
|
||
<DataGridTextColumn
|
||
Binding="{Binding Value}"
|
||
ElementStyle="{StaticResource CenteredTextBlockStyle}"
|
||
Header="参数值" />
|
||
</DataGrid.Columns>
|
||
</DataGrid>
|
||
</GroupBox>
|
||
<GridSplitter
|
||
Grid.Row="1"
|
||
Height="5"
|
||
HorizontalAlignment="Stretch"
|
||
VerticalAlignment="Stretch"
|
||
Background="Gray"
|
||
ShowsPreview="True" />
|
||
<GroupBox Grid.Row="2" Header="构件实例表">
|
||
<DataGrid
|
||
Margin="-4"
|
||
AutoGenerateColumns="False"
|
||
CanUserAddRows="False"
|
||
ItemsSource="{Binding ElementName=Facilities, Path=SelectedItem.Instances}">
|
||
<DataGrid.Columns>
|
||
<DataGridTextColumn
|
||
Binding="{Binding Name}"
|
||
ElementStyle="{StaticResource CenteredTextBlockStyle}"
|
||
Header="实例名称"
|
||
IsReadOnly="True" />
|
||
<DataGridTemplateColumn Header="操作">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<UniformGrid Rows="1">
|
||
<Button
|
||
Command="{Binding DataContext.LocationInstanceCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}"
|
||
CommandParameter="{Binding}"
|
||
Content="定位" />
|
||
<Button
|
||
Command="{Binding DataContext.RemoveInstanceCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}"
|
||
CommandParameter="{Binding}"
|
||
Content="移除" />
|
||
</UniformGrid>
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
</DataGridTemplateColumn>
|
||
</DataGrid.Columns>
|
||
</DataGrid>
|
||
</GroupBox>
|
||
</Grid>-->
|
||
<GroupBox
|
||
Grid.Row="0"
|
||
Grid.Column="2"
|
||
materialDesign:GroupBoxAssist.HeaderPadding="4"
|
||
Header="构件实例表">
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="*" />
|
||
<RowDefinition Height="Auto" />
|
||
</Grid.RowDefinitions>
|
||
<DataGrid
|
||
x:Name="InstancesDG"
|
||
Margin="-4"
|
||
d:ItemsSource="{d:SampleData ItemCount=5}"
|
||
materialDesign:DataGridAssist.CellPadding="8,0"
|
||
materialDesign:DataGridAssist.ColumnHeaderPadding="6"
|
||
AutoGenerateColumns="False"
|
||
CanUserAddRows="False"
|
||
ItemsSource="{Binding ElementName=Facilities, Path=SelectedItem.Instances}"
|
||
SelectionMode="Extended">
|
||
<DataGrid.Columns>
|
||
<DataGridTextColumn
|
||
Binding="{Binding Id}"
|
||
ElementStyle="{StaticResource CenteredTextBlockStyle}"
|
||
Header="实例名称"
|
||
IsReadOnly="True" />
|
||
<DataGridTextColumn
|
||
Binding="{Binding Name}"
|
||
ElementStyle="{StaticResource CenteredTextBlockStyle}"
|
||
Header="实例名称"
|
||
IsReadOnly="True" />
|
||
<DataGridTemplateColumn Header="操作">
|
||
<DataGridTemplateColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<StackPanel Orientation="Horizontal">
|
||
<Button
|
||
Command="{Binding DataContext.LocationInstanceCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}"
|
||
CommandParameter="{Binding}"
|
||
Style="{StaticResource MaterialDesignToolForegroundButton}">
|
||
<materialDesign:PackIcon Kind="Show" />
|
||
</Button>
|
||
<Button
|
||
Command="{Binding DataContext.RemoveInstanceCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}"
|
||
CommandParameter="{Binding}"
|
||
Style="{StaticResource MaterialDesignToolForegroundButton}">
|
||
<materialDesign:PackIcon Kind="Remove" />
|
||
</Button>
|
||
</StackPanel>
|
||
</DataTemplate>
|
||
</DataGridTemplateColumn.CellTemplate>
|
||
</DataGridTemplateColumn>
|
||
</DataGrid.Columns>
|
||
</DataGrid>
|
||
<StackPanel
|
||
Grid.Row="1"
|
||
Margin="0,10,0,0"
|
||
HorizontalAlignment="Right"
|
||
VerticalAlignment="Bottom"
|
||
Orientation="Horizontal">
|
||
<Button
|
||
Margin="2,0"
|
||
Command="{Binding RemoveAllInstancesCommand}"
|
||
Style="{StaticResource MaterialDesignFloatingActionMiniButton}"
|
||
ToolTip="移除表中全部实例">
|
||
<materialDesign:PackIcon Kind="Delete" />
|
||
</Button>
|
||
<Button
|
||
Margin="2,0"
|
||
Command="{Binding RemoveSelectedInstancesCommand}"
|
||
CommandParameter="{Binding ElementName=InstancesDG, Path=SelectedItems}"
|
||
Style="{StaticResource MaterialDesignFloatingActionMiniButton}"
|
||
ToolTip="批量移除表中选中实例">
|
||
<materialDesign:PackIcon Kind="SelectionRemove" />
|
||
</Button>
|
||
<GridSplitter Width="2" Background="Gray" />
|
||
<Button
|
||
Margin="2,0"
|
||
Command="{Binding SelectAllInstancesCommand}"
|
||
Style="{StaticResource MaterialDesignFloatingActionMiniButton}"
|
||
ToolTip="在Revit中选中全部实例">
|
||
<materialDesign:PackIcon Kind="SelectAll" />
|
||
</Button>
|
||
<Button
|
||
Margin="2,0"
|
||
Command="{Binding SelectSelectedInstancesCommand}"
|
||
CommandParameter="{Binding ElementName=InstancesDG, Path=SelectedItems}"
|
||
Style="{StaticResource MaterialDesignFloatingActionMiniButton}"
|
||
ToolTip="在Revit中选择表中选中实例">
|
||
<materialDesign:PackIcon Kind="SelectGroup" />
|
||
</Button>
|
||
<GridSplitter Width="2" Background="Gray" />
|
||
<Button
|
||
Margin="2,0"
|
||
Command="{Binding RepickInstancesByRectangleCommand}"
|
||
CommandParameter="{Binding SelectedFacility.MappedFamily}"
|
||
Style="{StaticResource MaterialDesignFloatingActionMiniButton}"
|
||
ToolTip="框选实例附加到构件实例表">
|
||
<materialDesign:PackIcon Kind="Select" />
|
||
</Button>
|
||
<Button
|
||
Grid.Row="1"
|
||
Margin="2,0"
|
||
Command="{Binding RepickSamplingInstancesCommand}"
|
||
CommandParameter="{Binding SelectedFacility.MappedFamily}"
|
||
Style="{StaticResource MaterialDesignFloatingActionMiniButton}"
|
||
ToolTip="点选实例附加到构件实例表,可以连续点击,按ESC或右键取消">
|
||
<materialDesign:PackIcon Kind="CursorHand" />
|
||
</Button>
|
||
</StackPanel>
|
||
</Grid>
|
||
</GroupBox>
|
||
|
||
<UniformGrid
|
||
Grid.Row="2"
|
||
Grid.Column="2"
|
||
Rows="1">
|
||
<Button
|
||
Command="{Binding BrowserExcelCommand}"
|
||
Content="选择设备表"
|
||
ToolTip="选择设备信息表" />
|
||
<Button
|
||
Command="{Binding ProcessModelInfoCommand}"
|
||
Content="添加设备信息"
|
||
ToolTip="将参数表的参数添加到构件实例表的实例参数" />
|
||
</UniformGrid>
|
||
<TextBox
|
||
Grid.Row="1"
|
||
Grid.Column="2"
|
||
materialDesign:HintAssist.Hint="搜索构件表"
|
||
Text="{Binding SearchInstanceText, UpdateSourceTrigger=PropertyChanged}" />
|
||
<TextBox
|
||
Grid.Row="2"
|
||
Grid.Column="0"
|
||
materialDesign:HintAssist.Hint="设备信息表路径"
|
||
IsReadOnly="True"
|
||
Text="{Binding ExcelPath}" />
|
||
</Grid>
|
||
</controls:MaterialWindow>
|