WinPermission.xaml 10.2 KB
<win:HideCloseWindow
    x:Class="HHECS.WinClient.View.UserPermission.WinPermission"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:local="clr-namespace:HHECS.WinClient.View.UserPermission"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:model="clr-namespace:HHECS.Model.Entities;assembly=HHECS.Model"
    xmlns:valuerules="clr-namespace:HHECS.WinCommon.ValueRules;assembly=HHECS.WinCommon"
    xmlns:win="clr-namespace:HHECS.WinCommon.Win;assembly=HHECS.WinCommon"
    Title="权限管理"
    Width="800"
    Height="450"
    d:DataContext="{d:DesignInstance Type=local:PermissionVM}"
    mc:Ignorable="d">
    <Window.Resources>
        <Style BasedOn="{StaticResource {x:Type TextBox}}" TargetType="TextBox">
            <Setter Property="MinWidth" Value="80" />
            <Setter Property="HorizontalAlignment" Value="Left" />
            <Setter Property="TextWrapping" Value="Wrap" />
            <Setter Property="VerticalAlignment" Value="Center" />
            <Setter Property="Margin" Value="9.4,0,0,0" />
        </Style>
        <Style x:Key="sp" TargetType="StackPanel">
            <Setter Property="Orientation" Value="Horizontal" />
            <Setter Property="HorizontalAlignment" Value="Left" />
            <Setter Property="VerticalAlignment" Value="Center" />
            <Setter Property="Margin" Value="20,10,20,10" />
        </Style>
        <Style x:Key="wp" TargetType="WrapPanel">
            <Setter Property="Orientation" Value="Horizontal" />
            <Setter Property="HorizontalAlignment" Value="Left" />
            <Setter Property="VerticalAlignment" Value="Center" />
            <Setter Property="Margin" Value="20,10,20,10" />
        </Style>
        <Style
            x:Key="txb"
            BasedOn="{StaticResource BaseTextBlockStyle}"
            TargetType="TextBlock">
            <Setter Property="VerticalAlignment" Value="Center" />
        </Style>
        <Style
            x:Key="btn"
            BasedOn="{StaticResource BaseButtonStyle}"
            TargetType="Button">
            <Setter Property="Margin" Value="2" />
        </Style>
    </Window.Resources>
    <DockPanel>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="3*" />
                <ColumnDefinition Width="5*" />
            </Grid.ColumnDefinitions>

            <TreeView
                x:Name="treeMain"
                Grid.Column="0"
                ItemsSource="{Binding Permissions}"
                TreeViewItem.Selected="treeMain_Selected">
                <TreeView.ItemTemplate>
                    <HierarchicalDataTemplate DataType="{x:Type model:Permission}" ItemsSource="{Binding Path=Childrens}">
                        <StackPanel Orientation="Horizontal">
                            <Image
                                Width="16"
                                Height="16"
                                Margin="0,0,2,2"
                                VerticalAlignment="Center"
                                Source="{Binding Icon}" />
                            <TextBlock Style="{StaticResource txb}" Text="{Binding PermissionName}" />
                            <!--<Image VerticalAlignment="Center" Source="{Binding EditIcon}" Margin="2,0,0,0"></Image>-->
                            <StackPanel.ToolTip>
                                <TextBlock
                                    MaxWidth="200"
                                    Style="{StaticResource txb}"
                                    Text="{Binding Remark}"
                                    TextWrapping="Wrap" />
                            </StackPanel.ToolTip>
                        </StackPanel>
                    </HierarchicalDataTemplate>
                </TreeView.ItemTemplate>
            </TreeView>
            <GridSplitter Width="5" />
            <Grid x:Name="GridDetail" Grid.Column="1">
                <Grid.RowDefinitions>
                    <RowDefinition Height="auto" />
                    <RowDefinition Height="auto" />
                    <RowDefinition Height="auto" />
                    <RowDefinition Height="auto" />
                    <RowDefinition Height="auto" />
                    <RowDefinition Height="auto" />
                    <RowDefinition Height="auto" />
                    <RowDefinition Height="auto" />
                    <RowDefinition Height="auto" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <ToolBar Grid.Row="0">
                    <Button
                        x:Name="BtnNew"
                        Click="BtnNew_Click"
                        IsEnabled="{Binding Enable}"
                        Style="{StaticResource btn}"
                        Tag="permission:add">
                        新增
                    </Button>
                    <Button
                        x:Name="BtnSave"
                        Click="BtnSave_Click"
                        Content="保存"
                        IsEnabled="{Binding Enable}"
                        Style="{StaticResource btn}"
                        Tag="permission:save" />
                    <!--<Button x:Name="BtnEdit" Style="{StaticResource btn}" Click="BtnEdit_Click" Tag="permission:edit">编辑</Button>-->
                    <Button
                        x:Name="BtnDelete"
                        Click="BtnDelete_Click"
                        IsEnabled="{Binding Enable}"
                        Style="{StaticResource btn}"
                        Tag="permission:delete">
                        删除
                    </Button>
                    <Button
                        x:Name="BtnQuery"
                        Click="BtnQuery_Click"
                        Content="刷新"
                        Style="{StaticResource btn}"
                        Tag="permission:query" />
                </ToolBar>
                <StackPanel Grid.Row="1" Style="{StaticResource sp}">
                    <TextBlock Text="父菜单:" TextWrapping="Wrap" />
                    <TextBlock
                        HorizontalAlignment="Center"
                        VerticalAlignment="Center"
                        Text="{Binding Path=Permission.Parent.PermissionName}"
                        TextWrapping="Wrap" />
                </StackPanel>
                <WrapPanel Grid.Row="2" Style="{StaticResource wp}">
                    <TextBlock>编码:</TextBlock>
                    <TextBox>
                        <TextBox.Text>
                            <Binding Path="Permission.PermissionCode" UpdateSourceTrigger="PropertyChanged">
                                <Binding.ValidationRules>
                                    <valuerules:StringNotNullSpaceRule />
                                </Binding.ValidationRules>
                            </Binding>
                        </TextBox.Text>
                    </TextBox>
                    <TextBlock Text="名称:" TextWrapping="Wrap" />
                    <TextBox x:Name="TxtName">
                        <TextBox.Text>
                            <Binding Path="Permission.PermissionName" UpdateSourceTrigger="PropertyChanged">
                                <Binding.ValidationRules>
                                    <valuerules:StringNotNullSpaceRule />
                                </Binding.ValidationRules>
                            </Binding>
                        </TextBox.Text>
                    </TextBox>
                    <TextBlock
                        Margin="20,0,0,0"
                        Text="类型:"
                        TextWrapping="Wrap" />
                    <ComboBox
                        x:Name="CBType"
                        DisplayMemberPath="Name"
                        ItemsSource="{Binding PermissionDict.DictDetails}"
                        SelectedIndex="0"
                        SelectedValuePath="Code">
                        <ComboBox.SelectedValue>
                            <Binding Path="Permission.PermissionType" UpdateSourceTrigger="PropertyChanged">
                                <Binding.ValidationRules>
                                    <valuerules:StringNotNullSpaceRule />
                                </Binding.ValidationRules>
                            </Binding>
                        </ComboBox.SelectedValue>
                    </ComboBox>
                </WrapPanel>
                <StackPanel Grid.Row="3" Style="{StaticResource sp}">
                    <TextBlock Text="地址:" TextWrapping="Wrap" />
                    <TextBox
                        x:Name="TxtUrl"
                        MinWidth="280"
                        Text="{Binding Path=Permission.Url, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
                </StackPanel>
                <StackPanel Grid.Row="4" Style="{StaticResource sp}">
                    <TextBlock Text="权限:" TextWrapping="Wrap" />
                    <TextBox x:Name="TxtPermission" Text="{Binding Path=Permission.Perms, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
                </StackPanel>
                <StackPanel Grid.Row="5" Style="{StaticResource sp}">
                    <TextBlock Text="备注:" TextWrapping="Wrap" />
                    <TextBox x:Name="TxtRemark" Text="{Binding Path=Permission.Remark, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
                    <TextBlock
                        Margin="20,0,0,0"
                        Text="排序:"
                        TextWrapping="Wrap" />
                    <TextBox x:Name="TxtOrderNum">
                        <TextBox.Text>
                            <Binding Path="Permission.OrderNum" UpdateSourceTrigger="PropertyChanged">
                                <Binding.ValidationRules>
                                    <valuerules:IntegerOverZeroRule />
                                </Binding.ValidationRules>
                            </Binding>
                        </TextBox.Text>
                    </TextBox>
                </StackPanel>
            </Grid>
        </Grid>
    </DockPanel>
</win:HideCloseWindow>