Files
ShrlAlgoToolkit/ShrlAlgoToolkit.RevitAddins/RvView/ViewManagerView.xaml
2026-02-20 15:31:44 +08:00

258 lines
15 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<ui:MelWindow
x:Class="ShrlAlgoToolkit.RevitAddins.RvView.ViewManagerView"
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:converters="clr-namespace:ShrlAlgoToolkit.RevitAddins.Converters"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ShrlAlgoToolkit.RevitAddins.RvView"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:rvView="clr-namespace:ShrlAlgoToolkit.RevitAddins.RvView"
xmlns:ui="https://github.com/ShrlAlgo/Melskin"
Title="视图管理"
Width="800"
Height="450"
d:DataContext="{d:DesignInstance Type=local:ViewManagerViewModel}"
Icon="{DynamicResource RevitIcon}"
mc:Ignorable="d">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/ShrlAlgoToolkit.RevitAddins;component/WPFUI.xaml" />
</ResourceDictionary.MergedDictionaries>
<converters:SearchValueConverter x:Key="SearchValueConverter" />
<converters:EnumItemsSourceAndConverter x:Key="DetailLevelConverter" Type="{x:Type rvView:UserViewDetailLevel}" />
<converters:EnumItemsSourceAndConverter x:Key="ViewTypeConverter" Type="{x:Type rvView:UserViewType}" />
<converters:EnumItemsSourceAndConverter x:Key="DisplayStyleConverter" Type="{x:Type rvView:UserDisplayStyle}" />
<converters:EnumItemsSourceAndConverter x:Key="ViewDisciplineConverter" Type="{x:Type rvView:UserViewDiscipline}" />
<ui:BindingProxy x:Key="ViewDataGridProxy" Data="{Binding ElementName=ViewDataGrid}" />
</ResourceDictionary>
</Window.Resources>
<ui:Grid
ChildMargin="5"
Columns="*,Auto,Auto"
Rows="*,Auto">
<DataGrid
x:Name="ViewDataGrid"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="3"
Height="380"
d:ItemsSource="{d:SampleData}"
AutoGenerateColumns="False"
CanUserAddRows="False"
EnableRowVirtualization="False"
FrozenColumnCount="2"
GridLinesVisibility="All"
ItemsSource="{Binding FilteredList}"
SelectionMode="Extended">
<b:Interaction.Triggers>
<b:EventTrigger EventName="SelectionChanged">
<!--<b:InvokeCommandAction Command="{Binding DataContext.UpdateExecuteCommand, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}" CommandParameter="{Binding SelectedItems, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" />-->
<b:InvokeCommandAction Command="{Binding UpdateExecuteCommand}" CommandParameter="{Binding SelectedItems, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}, Mode=FindAncestor}}" />
</b:EventTrigger>
<!--<b:EventTrigger EventName="CellEditEnding">
<b:InvokeCommandAction Command="{Binding UpdatePropertyCommand}" CommandParameter="{Binding SelectedItems, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" />
</b:EventTrigger>-->
</b:Interaction.Triggers>
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem
Command="{Binding CopyOnlyCommand}"
CommandParameter="{Binding Data.SelectedItems, Source={StaticResource ViewDataGridProxy}}"
Header="复制" />
<MenuItem
Command="{Binding CopyWithDetailCommand}"
CommandParameter="{Binding Data.SelectedItems, Source={StaticResource ViewDataGridProxy}}"
Header="带细节复制" />
<MenuItem
Command="{Binding CopyAsDependentCommand}"
CommandParameter="{Binding Data.SelectedItems, Source={StaticResource ViewDataGridProxy}}"
Header="复制作为相关" />
<MenuItem
Command="{Binding DeleteCommand}"
CommandParameter="{Binding Data.SelectedItems, Source={StaticResource ViewDataGridProxy}}"
Header="删除视图" />
</ContextMenu>
</DataGrid.ContextMenu>
<!--<DataGrid.RowHeaderTemplate>
<DataTemplate>
<Grid Width="35">
<CheckBox HorizontalAlignment="Center" IsChecked="{Binding IsSelected, Mode=TwoWay, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}" />
</Grid>
</DataTemplate>
</DataGrid.RowHeaderTemplate>-->
<DataGrid.Columns>
<DataGridTemplateColumn Width="80">
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<CheckBox Content="全选">
<b:Interaction.Triggers>
<b:EventTrigger EventName="Checked">
<b:CallMethodAction MethodName="SelectAll" TargetObject="{Binding ElementName=ViewDataGrid}" />
</b:EventTrigger>
<b:EventTrigger EventName="Unchecked">
<b:CallMethodAction MethodName="UnselectAll" TargetObject="{Binding ElementName=ViewDataGrid}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</CheckBox>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox HorizontalAlignment="Center" IsChecked="{Binding IsSelected, Mode=TwoWay, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}}}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn
Binding="{Binding Name, UpdateSourceTrigger=PropertyChanged}"
EditingElementStyle="{StaticResource DefaultTextBoxStyle}"
Header="视图名称">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn
Binding="{Binding UserViewType, Converter={StaticResource ViewTypeConverter}, Mode=OneTime}"
Header="视图类型"
IsReadOnly="True">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTemplateColumn Header="视图比例">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
IsEnabled="{Binding IsScaleEditable}"
Text="1:" />
<!--<TextBox IsEnabled="{Binding IsScaleEditable}" Text="{Binding Scale, StringFormat={}1{0}}" />-->
<TextBox IsEnabled="{Binding IsScaleEditable}" Text="{Binding Scale, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<!--<DataGridTemplateColumn Header="视图样板">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Style="{x:Null}" Text="{Binding ViewTemplate}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox
DisplayMemberPath="Name"
ItemsSource="{Binding DataContext.ViewTemplates, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}"
SelectedItem="{Binding ViewTemplate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedValue="Value"
Style="{StaticResource mdDataGridComboBox}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>-->
<DataGridTemplateColumn Header="图形显示">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox
IsEnabled="{Binding IsDisplayStyleEditable}"
ItemsSource="{Binding Source={StaticResource DisplayStyleConverter}}"
SelectedItem="{Binding DisplayStyle, Converter={StaticResource DisplayStyleConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="详细程度">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox
IsEnabled="{Binding IsDetailLevelEditable}"
ItemsSource="{Binding Source={StaticResource DetailLevelConverter}}"
SelectedItem="{Binding DetailLevel, Converter={StaticResource DetailLevelConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<!--<DataGridComboBoxColumn
Header="详细程度"
ItemsSource="{Binding Source={StaticResource DetailLevelConverter}}"
SelectedValueBinding="{Binding DetailLevel, Mode=TwoWay, Converter={StaticResource DetailLevelConverter}, UpdateSourceTrigger=PropertyChanged}">
<DataGridComboBoxColumn.EditingElementStyle>
<Style BasedOn="{StaticResource DefaultComboBoxStyle}" TargetType="ComboBox">
<Setter Property="IsEnabled" Value="{Binding IsDetailLevelEditable}" />
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</DataGridComboBoxColumn.ElementStyle>
</DataGridComboBoxColumn>-->
<DataGridTemplateColumn Header="视图样板">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox
DisplayMemberPath="Name"
IsEnabled="{Binding IsViewTemplateEditable}"
ItemsSource="{Binding ViewTemplates}"
SelectedItem="{Binding ViewTemplate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="规程">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox
IsEnabled="{Binding IsDisciplineEditable}"
ItemsSource="{Binding Source={StaticResource ViewDisciplineConverter}}"
SelectedItem="{Binding Discipline, Converter={StaticResource ViewDisciplineConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="图纸编号">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox IsEnabled="{Binding IsSheetNumberEditable}" Text="{Binding SheetNumber, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="图纸上的标题">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox IsEnabled="{Binding IsSheetNameEditable}" Text="{Binding SheetName, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<TextBox
x:Name="TbSearch"
Grid.Row="1"
Grid.Column="0"
ui:InputAssist.PlaceholderText="搜索视图"
Cursor="IBeam"
Text="{Binding SearchText, UpdateSourceTrigger=PropertyChanged}" />
<Button
Grid.Row="1"
Grid.Column="1"
ui:ControlAssist.Icon="{ui:Icon SymbolValue=Search}"
Command="{Binding SearchCommand}"
Content="搜索"
IsDefault="True" />
<Button
Grid.Row="1"
Grid.Column="2"
ui:ControlAssist.Icon="{ui:Icon SymbolValue=Edit}"
Command="{Binding ConfirmCommand}"
Content="应用" />
</ui:Grid>
</ui:MelWindow>