Files
ShrlAlgoToolkit/ShrlAlgoToolkit.RevitAddins/RvFamily/RenameFamilyView.xaml

242 lines
12 KiB
Plaintext
Raw Normal View History

2026-01-02 17:30:41 +08:00
<ui:MelWindow
2025-08-20 12:10:35 +08:00
x:Class="ShrlAlgoToolkit.RevitAddins.RvFamily.RenameFamilyView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
2025-12-23 21:35:54 +08:00
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
2025-08-20 12:10:35 +08:00
xmlns:attach="clr-namespace:ShrlAlgoToolkit.Mvvm.Attach;assembly=ShrlAlgoToolkit.Mvvm"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
2025-09-12 09:55:36 +08:00
xmlns:conv="clr-namespace:ShrlAlgoToolkit.RevitAddins.Converters"
2025-10-10 11:19:58 +08:00
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
2025-08-20 12:10:35 +08:00
xmlns:local="clr-namespace:ShrlAlgoToolkit.RevitAddins.RvFamily"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
2026-01-02 17:30:41 +08:00
xmlns:ui="https://github.com/ShrlAlgo/Melskin"
2025-08-20 12:10:35 +08:00
xmlns:validationRules="clr-namespace:ShrlAlgoToolkit.Mvvm.ValidationRules;assembly=ShrlAlgoToolkit.Mvvm"
2025-12-23 21:35:54 +08:00
Title="重命名族"
Width="900"
Height="600"
d:DataContext="{d:DesignInstance local:RenameFamilyViewModel}"
Icon="{DynamicResource RevitIcon}"
mc:Ignorable="d">
2024-09-22 11:05:41 +08:00
<Window.Resources>
2025-04-24 20:56:10 +08:00
<ResourceDictionary Source="pack://application:,,,/ShrlAlgoToolkit.RevitAddins;component/WPFUI.xaml" />
2024-09-22 11:05:41 +08:00
</Window.Resources>
2025-08-20 12:10:35 +08:00
<ui:Grid
ChildMargin="5"
Columns="250,*,*,*"
Rows="*,Auto">
<ui:Grid
2025-10-10 11:19:58 +08:00
Grid.RowSpan="2"
2025-12-23 21:35:54 +08:00
Columns="*"
2025-08-20 12:10:35 +08:00
Rows="*,Auto,Auto">
2024-09-22 11:05:41 +08:00
<GroupBox Header="族类别">
2025-08-20 12:10:35 +08:00
<ListBox
2025-12-23 21:35:54 +08:00
x:Name="LbCategories"
d:ItemsSource="{d:SampleData ItemCount=5}"
2025-08-20 12:10:35 +08:00
DisplayMemberPath="Key"
ItemsSource="{Binding Collection, Mode=OneWay}"
2025-10-10 11:19:58 +08:00
SelectionMode="Multiple"
2025-12-23 21:35:54 +08:00
Style="{StaticResource ChipListBoxStyle}">
2024-09-22 11:05:41 +08:00
<b:Interaction.Triggers>
<b:EventTrigger EventName="SelectionChanged">
<b:InvokeCommandAction Command="{Binding GetRenameItemsCommand}" CommandParameter="{Binding SelectedItems, RelativeSource={RelativeSource AncestorType={x:Type ListBox}, Mode=FindAncestor}}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</ListBox>
</GroupBox>
<DockPanel>
<CheckBox Content="全选">
<b:Interaction.Triggers>
<b:EventTrigger EventName="Checked">
<b:CallMethodAction MethodName="SelectAll" TargetObject="{Binding ElementName=LbCategories}" />
</b:EventTrigger>
<b:EventTrigger EventName="Unchecked">
<b:CallMethodAction MethodName="UnselectAll" TargetObject="{Binding ElementName=LbCategories}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</CheckBox>
2025-08-20 12:10:35 +08:00
<TextBlock
HorizontalAlignment="Right"
2025-12-23 21:35:54 +08:00
VerticalAlignment="Center"
Text="{Binding CategoryCount, StringFormat=类别数:{}{0:D}}" />
2024-09-22 11:05:41 +08:00
</DockPanel>
2025-12-23 21:35:54 +08:00
<TextBox ui:InputAssist.PlaceholderText="过滤族类别" Text="{Binding SearchText, UpdateSourceTrigger=PropertyChanged}" />
2025-08-20 12:10:35 +08:00
</ui:Grid>
<DataGrid
2025-12-23 21:35:54 +08:00
x:Name="DgRename"
Grid.Row="0"
2025-10-10 11:19:58 +08:00
Grid.Column="1"
Grid.ColumnSpan="3"
2025-12-23 21:35:54 +08:00
attach:TextSearchAssist.SearchValue="{Binding Text, ElementName=TbFound, UpdateSourceTrigger=PropertyChanged}"
AutoGenerateColumns="False"
CanUserAddRows="False"
2025-08-20 12:10:35 +08:00
HeadersVisibility="Column"
IsEnabled="{Binding CanInput}"
ItemsSource="{Binding RenameItems}"
2025-12-23 21:35:54 +08:00
SelectionUnit="Cell">
2024-09-22 11:05:41 +08:00
<DataGrid.Resources>
2025-10-10 11:19:58 +08:00
<Style BasedOn="{StaticResource DefaultDataGridCellStyle}" TargetType="{x:Type DataGridCell}">
2025-07-12 23:31:32 +08:00
<!-- <Setter Property="HorizontalAlignment" Value="Center" />
2025-08-20 12:10:35 +08:00
<Setter Property="VerticalAlignment" Value="Center" />-->
2025-07-12 23:31:32 +08:00
<Setter Property="attach:TextSearchAssist.IsTextMatch">
2024-09-22 11:05:41 +08:00
<Setter.Value>
2025-09-12 09:55:36 +08:00
<MultiBinding Converter="{x:Static conv:SearchFamilyValueConverter.Instance}">
2024-09-22 11:05:41 +08:00
<Binding Path="Content.Text" RelativeSource="{RelativeSource Mode=Self}" />
2025-07-12 23:31:32 +08:00
<Binding Path="(attach:TextSearchAssist.SearchValue)" RelativeSource="{RelativeSource Mode=Self}" />
2024-09-22 11:05:41 +08:00
<Binding RelativeSource="{RelativeSource Mode=Self}" />
</MultiBinding>
</Setter.Value>
</Setter>
<Style.Triggers>
2025-07-12 23:31:32 +08:00
<Trigger Property="attach:TextSearchAssist.IsTextMatch" Value="True">
2024-09-22 11:05:41 +08:00
<Setter Property="Foreground" Value="SkyBlue" />
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
<DataGrid.ColumnHeaderStyle>
2025-10-10 11:19:58 +08:00
<Style BasedOn="{StaticResource DefaultDataGridColumnHeaderStyle}" TargetType="{x:Type DataGridColumnHeader}">
2024-09-22 11:05:41 +08:00
<Setter Property="HorizontalContentAlignment" Value="Center" />
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
2025-08-20 12:10:35 +08:00
<DataGridCheckBoxColumn
2025-12-23 21:35:54 +08:00
MinWidth="80"
2025-08-20 12:10:35 +08:00
Binding="{Binding IsSelected, UpdateSourceTrigger=PropertyChanged}"
2025-10-10 11:19:58 +08:00
EditingElementStyle="{StaticResource DataGridCheckBoxStyle}"
2025-12-23 21:35:54 +08:00
ElementStyle="{StaticResource DataGridCheckBoxStyle}">
2024-09-22 11:05:41 +08:00
<DataGridCheckBoxColumn.Header>
<Border Background="Transparent">
2025-08-20 12:10:35 +08:00
<CheckBox
2025-10-10 11:19:58 +08:00
HorizontalAlignment="Center"
2025-12-23 21:35:54 +08:00
Content="全选"
2025-08-20 12:10:35 +08:00
IsChecked="{Binding DataContext.IsAllItemsSelected, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
2024-09-22 11:05:41 +08:00
</Border>
</DataGridCheckBoxColumn.Header>
2025-07-12 23:31:32 +08:00
<!-- <DataGridCheckBoxColumn.HeaderStyle>
2024-09-22 11:05:41 +08:00
<Style BasedOn="{StaticResource DefaultDataGridColumnHeaderStyle}" TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Center" />
</Style>
2025-08-20 12:10:35 +08:00
</DataGridCheckBoxColumn.HeaderStyle>-->
2024-09-22 11:05:41 +08:00
</DataGridCheckBoxColumn>
2025-08-20 12:10:35 +08:00
<DataGridTextColumn
2025-12-23 21:35:54 +08:00
MinWidth="80"
2025-08-20 12:10:35 +08:00
Binding="{Binding CategoryName}"
Header="族类别"
2025-12-23 21:35:54 +08:00
IsReadOnly="True">
2024-09-22 11:05:41 +08:00
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
2025-08-20 12:10:35 +08:00
<DataGridTextColumn
2025-12-23 21:35:54 +08:00
MinWidth="80"
2025-08-20 12:10:35 +08:00
Binding="{Binding OldFamilyName}"
Header="族名称"
2025-12-23 21:35:54 +08:00
IsReadOnly="True">
2024-09-22 11:05:41 +08:00
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
2025-08-20 12:10:35 +08:00
<DataGridTextColumn
2025-12-23 21:35:54 +08:00
MinWidth="80"
2025-08-20 12:10:35 +08:00
Binding="{Binding NewFamilyName, UpdateSourceTrigger=PropertyChanged}"
2025-10-10 11:19:58 +08:00
EditingElementStyle="{StaticResource DefaultTextBoxStyle}"
2025-12-23 21:35:54 +08:00
Header="新族名称">
2024-09-22 11:05:41 +08:00
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
<GroupBox Header="前/后缀">
<UniformGrid Columns="1">
2025-08-20 12:10:35 +08:00
<TextBox
Margin="5"
2025-12-23 21:35:54 +08:00
ui:InputAssist.PlaceholderText="前缀"
IsEnabled="{Binding CanInput}">
2024-09-22 11:05:41 +08:00
<Binding Path="PrefixText" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<validationRules:UndefinedCharRules ValidatesOnTargetUpdated="True" />
2024-09-22 11:05:41 +08:00
</Binding.ValidationRules>
</Binding>
2025-08-20 12:10:35 +08:00
</TextBox>
2025-07-12 23:31:32 +08:00
<!-- <TextBox
2025-08-20 12:10:35 +08:00
x:Name="Tbui:InputAssist.Prefix"
2024-09-22 11:05:41 +08:00
materialDesign:HintAssist.Hint="前缀"
IsEnabled="{Binding CanInput}">
<TextBox.Text>
2025-08-20 12:10:35 +08:00
<Binding Path="ui:InputAssist.PrefixText" UpdateSourceTrigger="PropertyChanged">
2024-09-22 11:05:41 +08:00
<Binding.ValidationRules>
<validationRules:UndefinedCharRules ValidatesOnTargetUpdated="True" />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
2025-08-20 12:10:35 +08:00
</TextBox>-->
<TextBox
Margin="5"
2025-12-23 21:35:54 +08:00
ui:InputAssist.PlaceholderText="后缀"
IsEnabled="{Binding CanInput}">
2024-09-22 11:05:41 +08:00
<Binding Path="SuffixText" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<validationRules:UndefinedCharRules ValidatesOnTargetUpdated="True" />
2024-09-22 11:05:41 +08:00
</Binding.ValidationRules>
</Binding>
2025-08-20 12:10:35 +08:00
</TextBox>
2024-09-22 11:05:41 +08:00
</UniformGrid>
</GroupBox>
<GroupBox Header="查找/替换">
<StackPanel>
2025-08-20 12:10:35 +08:00
<TextBox
2025-12-23 21:35:54 +08:00
x:Name="TbFound"
2025-08-20 12:10:35 +08:00
Margin="5"
2025-12-23 21:35:54 +08:00
ui:InputAssist.PlaceholderText="查找"
IsEnabled="{Binding CanInput}">
2024-09-22 11:05:41 +08:00
<Binding Path="FoundText" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<validationRules:UndefinedCharRules ValidatesOnTargetUpdated="True" />
2024-09-22 11:05:41 +08:00
</Binding.ValidationRules>
</Binding>
2025-08-20 12:10:35 +08:00
</TextBox>
<TextBox
2025-12-23 21:35:54 +08:00
x:Name="TbReplace"
2025-08-20 12:10:35 +08:00
Margin="5"
2025-12-23 21:35:54 +08:00
ui:InputAssist.PlaceholderText="替换"
IsEnabled="{Binding CanInput}">
2024-09-22 11:05:41 +08:00
<Binding Path="ReplaceText" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<validationRules:UndefinedCharRules ValidatesOnTargetUpdated="True" />
2024-09-22 11:05:41 +08:00
</Binding.ValidationRules>
</Binding>
2025-08-20 12:10:35 +08:00
</TextBox>
2024-09-22 11:05:41 +08:00
</StackPanel>
</GroupBox>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<GroupBox Grid.Row="0" Header="连接符">
2025-12-23 21:35:54 +08:00
<TextBox x:Name="TbSeparator" IsEnabled="{Binding CanInput}">
2024-09-22 11:05:41 +08:00
<Binding Path="Separator" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<validationRules:UndefinedCharRules ValidatesOnTargetUpdated="True" />
2024-09-22 11:05:41 +08:00
</Binding.ValidationRules>
</Binding>
</TextBox>
</GroupBox>
2025-08-20 12:10:35 +08:00
<Button
2025-10-10 11:19:58 +08:00
Grid.Row="1"
HorizontalAlignment="Stretch"
2025-12-23 21:35:54 +08:00
Command="{Binding ModifyNameCommand}"
Content="修改名称"
2025-08-20 12:10:35 +08:00
ToolTip="勾选要修改的项进行修改" />
2024-09-22 11:05:41 +08:00
</Grid>
2025-08-20 12:10:35 +08:00
</ui:Grid>
2026-01-02 17:30:41 +08:00
</ui:MelWindow>