Files
RevitArchive/RevitKits/WBSCoder/WbsCodeGeneratorPage.xaml

202 lines
9.2 KiB
Plaintext
Raw Permalink Normal View History

2026-02-23 14:58:05 +08:00
<Page
x:Class="Sai.Common.Shared.WBSCoder.WbsCodeGeneratorPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:wbsCoder="clr-namespace:Sai.Common.Shared.WBSCoder"
Title="WbsCodeGeneratorPage"
d:DataContext="{d:DesignInstance Type=wbsCoder:WbsCodeGeneratorViewModel}"
d:DesignHeight="450"
d:DesignWidth="800"
mc:Ignorable="d">
<Page.Resources>
<ResourceDictionary Source="/Sai.RvKits;component/Styles/WPFUI.xaml" />
</Page.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<WrapPanel Grid.Row="0" Grid.ColumnSpan="2">
<TextBox
Width="250"
materialDesign:HintAssist.Hint="项目代码"
CharacterCasing="Upper"
Cursor="Arrow"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding ProjectCode, UpdateSourceTrigger=PropertyChanged}"
ToolTip="项目代码">
<b:Interaction.Triggers>
<b:EventTrigger EventName="TextChanged">
<b:InvokeCommandAction Command="{Binding OverrideWbsCodeCommand}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</TextBox>
<ComboBox
Width="250"
materialDesign:HintAssist.Hint="工程类别"
DisplayMemberPath="Name"
IsEditable="True"
IsReadOnly="False"
IsTextSearchCaseSensitive="True"
IsTextSearchEnabled="True"
ItemsSource="{Binding EngineerCategories, Mode=TwoWay}"
SelectedValue="{Binding SelectedCategory, UpdateSourceTrigger=PropertyChanged}"
TextSearch.TextPath="Name"
ToolTip="工程类别">
<b:Interaction.Triggers>
<b:EventTrigger EventName="SelectionChanged">
<b:InvokeCommandAction Command="{Binding GetSubUnitEngineersCommand}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</ComboBox>
<ComboBox
Width="250"
materialDesign:HintAssist.Hint="单位工程"
DisplayMemberPath="Name"
IsEditable="True"
ItemsSource="{Binding UnitEngineers, Mode=TwoWay}"
SelectedValue="{Binding SelectedUnit, UpdateSourceTrigger=PropertyChanged}"
TextSearch.TextPath="Name"
ToolTip="单位工程">
<b:Interaction.Triggers>
<b:EventTrigger EventName="SelectionChanged">
<b:InvokeCommandAction Command="{Binding GetSubUnitEngineersCommand}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</ComboBox>
<ComboBox
Width="250"
materialDesign:HintAssist.Hint="子单位工程"
DisplayMemberPath="Name"
IsEditable="True"
ItemsSource="{Binding SubUnitEngineers, Mode=TwoWay}"
SelectedValue="{Binding SelectSubUnit, UpdateSourceTrigger=PropertyChanged}"
TextSearch.TextPath="Name"
ToolTip="子单位工程">
<b:Interaction.Triggers>
<b:EventTrigger EventName="SelectionChanged">
<b:InvokeCommandAction Command="{Binding GetSectionEngineersCommand}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</ComboBox>
<ComboBox
Width="250"
materialDesign:HintAssist.Hint="分部工程"
DisplayMemberPath="Name"
IsEditable="True"
ItemsSource="{Binding SectionEngineers, Mode=TwoWay}"
SelectedValue="{Binding SelectedSection, UpdateSourceTrigger=PropertyChanged}"
TextSearch.TextPath="Name"
ToolTip="分部工程">
<b:Interaction.Triggers>
<b:EventTrigger EventName="SelectionChanged">
<b:InvokeCommandAction Command="{Binding GetSubSectionEngineersCommand}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</ComboBox>
<ComboBox
Width="250"
materialDesign:HintAssist.Hint="子分部工程"
DisplayMemberPath="Name"
IsEditable="True"
ItemsSource="{Binding SubSectionEngineers, Mode=TwoWay}"
SelectedValue="{Binding SelectedSubSection, UpdateSourceTrigger=PropertyChanged}"
TextSearch.TextPath="Name"
ToolTip="子分部工程">
<b:Interaction.Triggers>
<b:EventTrigger EventName="SelectionChanged">
<b:InvokeCommandAction Command="{Binding GetComponentCodesCommand}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</ComboBox>
<TextBox
Width="250"
materialDesign:HintAssist.Hint="预留区域码"
CharacterCasing="Upper"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding RegionCode, UpdateSourceTrigger=PropertyChanged}">
<TextBox.ToolTip>
<TextBlock
Width="320"
Text="预留区域码:民用建筑工程:&#x0a;地上楼层区 0010101 001栋01层01区&#x0a;地下楼层区 B01B101 第一个分区地下负1层01区&#x0a;室外工程:&#x0a;001 01区 "
TextWrapping="WrapWithOverflow" />
</TextBox.ToolTip>
<b:Interaction.Triggers>
<b:EventTrigger EventName="TextChanged">
<b:InvokeCommandAction Command="{Binding OverrideWbsCodeCommand}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</TextBox>
<ComboBox
Width="250"
materialDesign:HintAssist.Hint="构件编码"
DisplayMemberPath="Name"
IsEditable="True"
ItemsSource="{Binding ComponentCodes, Mode=TwoWay}"
SelectedValue="{Binding SelectedComponentCode, UpdateSourceTrigger=PropertyChanged}"
TextSearch.TextPath="Name"
ToolTip="构件编码">
<b:Interaction.Triggers>
<b:EventTrigger EventName="SelectionChanged">
<b:InvokeCommandAction Command="{Binding OverrideWbsCodeCommand}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</ComboBox>
<TextBox
Width="250"
materialDesign:HintAssist.Hint="序列码"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding SequenceCode, UpdateSourceTrigger=PropertyChanged, StringFormat={}{0:D4}}"
ToolTip="序列码:输入序号,自动补位">
<b:Interaction.Triggers>
<b:EventTrigger EventName="TextChanged">
<b:InvokeCommandAction Command="{Binding OverrideWbsCodeCommand}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</TextBox>
</WrapPanel>
<Separator
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
Height="2"
VerticalAlignment="Top" />
<TextBox
x:Name="TbWbsCode"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
materialDesign:HintAssist.Hint="WBS编码"
Cursor="Arrow"
IsReadOnly="True"
Text="{Binding WbsCode}"
TextAlignment="Center"
ToolTip="WBS编码" />
<Button
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="2"
Cursor="Hand"
ToolTip="复制到剪贴板">
<b:Interaction.Triggers>
<b:EventTrigger EventName="Click">
<b:InvokeCommandAction Command="{Binding CopyToClipBoardCommand}"
CommandParameter="{Binding Text, ElementName=TbWbsCode}" />
</b:EventTrigger>
</b:Interaction.Triggers>
<StackPanel Orientation="Horizontal">
<materialDesign:PackIcon Kind="Clipboard" />
<TextBlock>复制</TextBlock>
</StackPanel>
</Button>
</Grid>
</Page>