255 lines
13 KiB
XML
255 lines
13 KiB
XML
<ui:NeoWindow
|
|
Height="600"
|
|
Icon="{DynamicResource RevitIcon}"
|
|
Title="重命名族类型"
|
|
Width="900"
|
|
d:DataContext="{d:DesignInstance local:RenameTypeViewModel}"
|
|
mc:Ignorable="d"
|
|
x:Class="ShrlAlgoToolkit.RevitAddins.RvFamily.RenameTypeView"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:attach="clr-namespace:ShrlAlgoToolkit.Mvvm.Attach;assembly=ShrlAlgoToolkit.Mvvm"
|
|
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
|
|
xmlns:conv="clr-namespace:ShrlAlgoToolkit.RevitAddins.Converters"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:local="clr-namespace:ShrlAlgoToolkit.RevitAddins.RvFamily"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:ui="https://github.com/ShrlAlgo/NeoUI"
|
|
xmlns:validationRules="clr-namespace:ShrlAlgoToolkit.Mvvm.ValidationRules;assembly=ShrlAlgoToolkit.Mvvm"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
|
<Window.Resources>
|
|
<ResourceDictionary Source="pack://application:,,,/ShrlAlgoToolkit.RevitAddins;component/WPFUI.xaml" />
|
|
</Window.Resources>
|
|
<ui:Grid
|
|
ChildMargin="5"
|
|
Columns="250,*,*,*"
|
|
Rows="*,Auto">
|
|
<ui:Grid
|
|
Columns="*"
|
|
Grid.RowSpan="2"
|
|
Rows="*,Auto,Auto">
|
|
<GroupBox Header="族类别">
|
|
<ListBox
|
|
DisplayMemberPath="Key"
|
|
ItemsSource="{Binding Collection, Mode=OneWay}"
|
|
SelectionMode="Multiple"
|
|
Style="{StaticResource ChipListBoxStyle}"
|
|
d:ItemsSource="{d:SampleData ItemCount=5}"
|
|
x:Name="LbCategories">
|
|
<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.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<ui:VirtualizingWrapPanel />
|
|
</ItemsPanelTemplate>
|
|
</ListBox.ItemsPanel>-->
|
|
<!--<ListBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<StackPanel Orientation="Horizontal">
|
|
<CheckBox IsChecked="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType=ListBoxItem}}" />
|
|
<TextBlock VerticalAlignment="Center" Text="{Binding Value}" />
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>-->
|
|
</ListBox>
|
|
</GroupBox>
|
|
<DockPanel Margin="5,503,5,40">
|
|
<CheckBox Content="全选" DockPanel.Dock="Left">
|
|
<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>
|
|
<TextBlock
|
|
DockPanel.Dock="Right"
|
|
HorizontalAlignment="Right"
|
|
Text="{Binding CategoryCount, StringFormat=类别个数:\{0:D\}}"
|
|
VerticalAlignment="Center" />
|
|
</DockPanel>
|
|
<TextBox
|
|
Margin="5,535,5,5"
|
|
Text="{Binding SearchText, UpdateSourceTrigger=PropertyChanged}"
|
|
ui:InputAssist.Placeholder="过滤族类别" />
|
|
</ui:Grid>
|
|
<DataGrid
|
|
AutoGenerateColumns="False"
|
|
CanUserAddRows="False"
|
|
Grid.Column="1"
|
|
Grid.ColumnSpan="3"
|
|
Grid.Row="0"
|
|
HeadersVisibility="Column"
|
|
ItemsSource="{Binding RenameItems}"
|
|
SelectionMode="Extended"
|
|
SelectionUnit="Cell"
|
|
attach:TextSearchAssist.SearchValue="{Binding Text, ElementName=TbFound, UpdateSourceTrigger=PropertyChanged}">
|
|
<DataGrid.Resources>
|
|
<Style BasedOn="{StaticResource DefaultDataGridCellStyle}" TargetType="{x:Type DataGridCell}">
|
|
<Setter Property="attach:TextSearchAssist.IsTextMatch">
|
|
<Setter.Value>
|
|
<MultiBinding Converter="{x:Static conv:SearchTypeValueConverter.Instance}">
|
|
<Binding Path="Content.Text" RelativeSource="{RelativeSource Mode=Self}" />
|
|
<Binding Path="(attach:TextSearchAssist.SearchValue)" RelativeSource="{RelativeSource Mode=Self}" />
|
|
<Binding RelativeSource="{RelativeSource Mode=Self}" />
|
|
</MultiBinding>
|
|
</Setter.Value>
|
|
</Setter>
|
|
<Style.Triggers>
|
|
<Trigger Property="attach:TextSearchAssist.IsTextMatch" Value="True">
|
|
<Setter Property="Foreground" Value="SkyBlue" />
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</DataGrid.Resources>
|
|
<DataGrid.ColumnHeaderStyle>
|
|
<Style BasedOn="{StaticResource DefaultDataGridColumnHeaderStyle}" TargetType="{x:Type DataGridColumnHeader}">
|
|
<Setter Property="HorizontalContentAlignment" Value="Center" />
|
|
<Setter Property="VerticalContentAlignment" Value="Center" />
|
|
</Style>
|
|
</DataGrid.ColumnHeaderStyle>
|
|
<DataGrid.Columns>
|
|
<DataGridCheckBoxColumn
|
|
Binding="{Binding IsSelected, UpdateSourceTrigger=PropertyChanged}"
|
|
EditingElementStyle="{StaticResource DataGridCheckBoxStyle}"
|
|
ElementStyle="{StaticResource DataGridCheckBoxStyle}">
|
|
<DataGridCheckBoxColumn.Header>
|
|
<CheckBox
|
|
Content="全选"
|
|
HorizontalAlignment="Center"
|
|
IsChecked="{Binding DataContext.IsAllItemsSelected, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
|
|
</DataGridCheckBoxColumn.Header>
|
|
</DataGridCheckBoxColumn>
|
|
<DataGridTextColumn
|
|
Binding="{Binding CategoryName}"
|
|
Header="族类别"
|
|
IsReadOnly="True"
|
|
MinWidth="80">
|
|
<DataGridTextColumn.ElementStyle>
|
|
<Style TargetType="{x:Type TextBlock}">
|
|
<Setter Property="HorizontalAlignment" Value="Center" />
|
|
<Setter Property="VerticalAlignment" Value="Center" />
|
|
</Style>
|
|
</DataGridTextColumn.ElementStyle>
|
|
</DataGridTextColumn>
|
|
<DataGridTextColumn
|
|
Binding="{Binding FamilyName}"
|
|
Header="族名称"
|
|
IsReadOnly="True"
|
|
MinWidth="80">
|
|
<DataGridTextColumn.ElementStyle>
|
|
<Style TargetType="{x:Type TextBlock}">
|
|
<Setter Property="HorizontalAlignment" Value="Center" />
|
|
<Setter Property="VerticalAlignment" Value="Center" />
|
|
</Style>
|
|
</DataGridTextColumn.ElementStyle>
|
|
</DataGridTextColumn>
|
|
<DataGridTextColumn
|
|
Binding="{Binding OldTypeName}"
|
|
Header="族类型"
|
|
IsReadOnly="True"
|
|
MinWidth="80">
|
|
<DataGridTextColumn.ElementStyle>
|
|
<Style TargetType="{x:Type TextBlock}">
|
|
<Setter Property="HorizontalAlignment" Value="Center" />
|
|
<Setter Property="VerticalAlignment" Value="Center" />
|
|
</Style>
|
|
</DataGridTextColumn.ElementStyle>
|
|
</DataGridTextColumn>
|
|
<DataGridTextColumn
|
|
Binding="{Binding NewTypeName, UpdateSourceTrigger=PropertyChanged}"
|
|
EditingElementStyle="{StaticResource DefaultTextBoxStyle}"
|
|
Header="新族类型名称"
|
|
MinWidth="80">
|
|
<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">
|
|
<TextBox
|
|
IsEnabled="{Binding CanInput}"
|
|
Margin="5"
|
|
ui:InputAssist.Placeholder="前缀">
|
|
<Binding Path="PrefixText" UpdateSourceTrigger="PropertyChanged">
|
|
<Binding.ValidationRules>
|
|
<validationRules:UndefinedCharRules ValidatesOnTargetUpdated="True" />
|
|
</Binding.ValidationRules>
|
|
</Binding>
|
|
</TextBox>
|
|
<TextBox
|
|
IsEnabled="{Binding CanInput}"
|
|
Margin="5"
|
|
ui:InputAssist.Placeholder="后缀">
|
|
<Binding Path="SuffixText" UpdateSourceTrigger="PropertyChanged">
|
|
<Binding.ValidationRules>
|
|
<validationRules:UndefinedCharRules ValidatesOnTargetUpdated="True" />
|
|
</Binding.ValidationRules>
|
|
</Binding>
|
|
</TextBox>
|
|
</UniformGrid>
|
|
</GroupBox>
|
|
<GroupBox Header="查找/替换">
|
|
<UniformGrid Columns="1">
|
|
<TextBox
|
|
IsEnabled="{Binding CanInput}"
|
|
Margin="5"
|
|
ui:InputAssist.Placeholder="查找"
|
|
x:Name="TbFound">
|
|
<Binding Path="FoundText" UpdateSourceTrigger="PropertyChanged">
|
|
<Binding.ValidationRules>
|
|
<validationRules:UndefinedCharRules ValidatesOnTargetUpdated="True" />
|
|
</Binding.ValidationRules>
|
|
</Binding>
|
|
</TextBox>
|
|
<TextBox
|
|
IsEnabled="{Binding CanInput}"
|
|
Margin="5"
|
|
ui:InputAssist.Placeholder="替换"
|
|
x:Name="TbReplace">
|
|
<Binding Path="ReplaceText" UpdateSourceTrigger="PropertyChanged">
|
|
<Binding.ValidationRules>
|
|
<validationRules:UndefinedCharRules ValidatesOnTargetUpdated="True" />
|
|
</Binding.ValidationRules>
|
|
</Binding>
|
|
</TextBox>
|
|
</UniformGrid>
|
|
</GroupBox>
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition />
|
|
<RowDefinition />
|
|
</Grid.RowDefinitions>
|
|
<GroupBox Grid.Row="0" Header="分隔符">
|
|
<TextBox IsEnabled="{Binding CanInput}" x:Name="TbSeparator">
|
|
<Binding Path="Separator" UpdateSourceTrigger="PropertyChanged">
|
|
<Binding.ValidationRules>
|
|
<validationRules:UndefinedCharRules ValidatesOnTargetUpdated="True" />
|
|
</Binding.ValidationRules>
|
|
</Binding>
|
|
</TextBox>
|
|
</GroupBox>
|
|
<!--
|
|
materialDesign:ButtonProgressAssist.IsIndeterminate="{Binding ModifyNameCommand.IsRunning, Mode=OneWay}"
|
|
materialDesign:ButtonProgressAssist.IsIndicatorVisible="{Binding ModifyNameCommand.IsRunning, Mode=OneWay}"
|
|
materialDesign:ButtonProgressAssist.Value="-1"
|
|
-->
|
|
<Button
|
|
Command="{Binding ModifyNameCommand}"
|
|
Content="修改名称"
|
|
Grid.Row="1"
|
|
HorizontalAlignment="Stretch"
|
|
ToolTip="勾选要修改的项进行修改" />
|
|
</Grid>
|
|
</ui:Grid>
|
|
</ui:NeoWindow>
|