UserView.xaml 6.98 KB
<Window
    x:Class="HHECS.RobotTool.View.AccountView.UserView"
    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:hc="https://handyorg.github.io/handycontrol"
    xmlns:local="clr-namespace:HHECS.RobotTool.View.AccountView"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:viewmodel="clr-namespace:HHECS.RobotTool.ViewModel.AccountVM"
    Title="用户管理"
    Width="800"
    Height="450"
    d:DataContext="{d:DesignInstance Type=viewmodel:UserVM}"
    WindowStartupLocation="CenterScreen"
    mc:Ignorable="d">
    <DockPanel>
        <StackPanel DockPanel.Dock="Top">
            <hc:UniformSpacingPanel Spacing="10">
                <hc:ElementGroup
                    Height="30"
                    Margin="0,1"
                    VerticalAlignment="Center"
                    Layout="Stack">
                    <Border Padding="6,0" Style="{StaticResource BorderRegion}">
                        <TextBlock
                            Width="50"
                            VerticalAlignment="Center"
                            Text="账号" />
                    </Border>
                    <TextBox MinWidth="150" Text="{Binding Account, UpdateSourceTrigger=PropertyChanged}" />
                </hc:ElementGroup>
                <hc:ElementGroup
                    Height="30"
                    VerticalAlignment="Center"
                    Layout="Stack">
                    <Border Padding="6,0" Style="{StaticResource BorderRegion}">
                        <TextBlock
                            Width="50"
                            VerticalAlignment="Center"
                            Text="用户名" />
                    </Border>
                    <TextBox MinWidth="150" Text="{Binding UserName, UpdateSourceTrigger=PropertyChanged}" />
                </hc:ElementGroup>
            </hc:UniformSpacingPanel>
            <ToolBar
                Margin="0,1"
                Padding="4"
                HorizontalAlignment="Right">
                <hc:UniformSpacingPanel Spacing="5">
                    <Button
                        hc:IconElement.Geometry="{StaticResource SearchGeometry}"
                        Command="{Binding SerachCommand}"
                        Content="搜索"
                        Style="{StaticResource ButtonDefault}"
                        Visibility="{Binding BtnPairs[QueryBtn]}" />
                    <Button
                        hc:IconElement.Geometry="{StaticResource AddGeometry}"
                        Command="{Binding AddCommand}"
                        Content="新增"
                        Style="{StaticResource ButtonDefault}"
                        Visibility="{Binding BtnPairs[CreateBtn]}" />
                    <Button
                        hc:IconElement.Geometry="{StaticResource DeleteFillCircleGeometry}"
                        Command="{Binding BatchDeleteCommand}"
                        CommandParameter="{Binding ElementName=DG, Path=SelectedItems}"
                        Content="批量删除"
                        Style="{StaticResource ButtonDanger}"
                        Visibility="{Binding BtnPairs[BatchDeleteBtn]}" />
                </hc:UniformSpacingPanel>
            </ToolBar>
        </StackPanel>
        <hc:Pagination
            DataCountPerPage="{Binding PageSize}"
            DockPanel.Dock="Bottom"
            IsJumpEnabled="True"
            MaxPageCount="{Binding MaxPage}"
            PageIndex="{Binding PageIndex}">
            <hc:Interaction.Triggers>
                <hc:EventTrigger EventName="PageUpdated">
                    <hc:EventToCommand Command="{Binding PageUpdatedCommand}" PassEventArgsToCommand="True" />
                </hc:EventTrigger>
            </hc:Interaction.Triggers>
        </hc:Pagination>
        <DataGrid
            Name="DG"
            hc:DataGridAttach.CanUnselectAllWithBlankArea="True"
            AutoGenerateColumns="False"
            HeadersVisibility="All"
            IsReadOnly="True"
            ItemsSource="{Binding Users}"
            RowHeaderWidth="60"
            Style="{StaticResource DataGrid.Small}">
            <DataGrid.RowHeaderTemplate>
                <DataTemplate>
                    <CheckBox IsChecked="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=DataGridRow}}" />
                </DataTemplate>
            </DataGrid.RowHeaderTemplate>
            <DataGrid.Columns>
                <DataGridTextColumn
                    Binding="{Binding Id}"
                    Header="Id"
                    Visibility="Hidden" />
                <DataGridTextColumn Binding="{Binding Account}" Header="账号" />
                <DataGridTextColumn Binding="{Binding UserName}" Header="用户名称" />
                <DataGridTextColumn Binding="{Binding Enable}" Header="是否启用" />
                <DataGridTextColumn Binding="{Binding Description}" Header="备注" />
                <DataGridTextColumn Binding="{Binding Created, StringFormat={}{0:yyyy/MM/dd HH:mm:ss}}" Header="创建时间" />
                <DataGridTextColumn Binding="{Binding Updated, StringFormat={}{0:yyyy/MM/dd HH:mm:ss}}" Header="修改时间" />
                <DataGridTemplateColumn Header="操作">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <hc:UniformSpacingPanel Spacing="5">
                                <Button
                                    hc:IconElement.Geometry="{StaticResource DropperGeometry}"
                                    Command="{Binding DataContext.EditCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}"
                                    CommandParameter="{Binding Id}"
                                    Content="编辑"
                                    Style="{StaticResource ButtonDefault.Small}"
                                    Visibility="{Binding Path=DataContext.BtnPairs[EditBtn], RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
                                <Button
                                    hc:IconElement.Geometry="{StaticResource DeleteFillCircleGeometry}"
                                    Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}"
                                    CommandParameter="{Binding Id}"
                                    Content="删除"
                                    Style="{StaticResource ButtonDanger.Small}"
                                    Visibility="{Binding Path=DataContext.BtnPairs[DeleteBtn], RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
                            </hc:UniformSpacingPanel>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
    </DockPanel>
</Window>