You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

274 lines
13 KiB

<UserControl x:Class="ECMonitor.Page.SystemSet.ManageNvr"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:prism="http://prismlibrary.com/"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mvvm="clr-namespace:ECMonitor.MVVM"
prism:ViewModelLocator.AutoWireViewModel="True"
mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"
x:Name="ThatPage">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding LoadedCommand}" CommandParameter="{Binding ElementName=ThatPage}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<UserControl.Resources>
<SolidColorBrush x:Key="BtnInActiveBrush" Color="#393d46" />
<SolidColorBrush x:Key="BtnActiveBrush" Color="#478cb6" />
<SolidColorBrush x:Key="DGHeaderBrush" Color="#424242" />
<SolidColorBrush x:Key="DGBorderBrush" Color="{StaticResource PageBorderColor}" Opacity="0.8" />
<SolidColorBrush x:Key="DGLineBrush" Color="{StaticResource PageBorderColor}" Opacity="0.9" />
<Style x:Key="topBtn" TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Margin" Value="0,0,6,0" />
<Setter Property="Background" Value="{StaticResource BtnInActiveBrush}" />
<Setter Property="Foreground" Value="WhiteSmoke" />
<Setter Property="BorderBrush" Value="{StaticResource PageBorderBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="materialDesign:ButtonAssist.CornerRadius" Value="5" />
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource BtnActiveBrush}" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource BtnActiveBrush}" />
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="topBtnPanel" TargetType="{x:Type StackPanel}">
<Setter Property="Orientation" Value="Horizontal" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style x:Key="topBtnImg" TargetType="{x:Type Control}">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style x:Key="topBtnTxt" TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</UserControl.Resources>
<Grid Background="{DynamicResource PageBodyBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Horizontal">
<Button Style="{StaticResource topBtn}" Command="{Binding AddCommand}">
<StackPanel Style="{StaticResource topBtnPanel}">
<materialDesign:PackIcon Kind="AddThick" Style="{StaticResource topBtnImg}" />
<TextBlock Text="添加" Style="{StaticResource topBtnTxt}" />
</StackPanel>
</Button>
<Button Style="{StaticResource topBtn}" Command="{Binding DeleteCommand}">
<StackPanel Style="{StaticResource topBtnPanel}">
<materialDesign:PackIcon Kind="MinusThick" Style="{StaticResource topBtnImg}" />
<TextBlock Text="删除" Style="{StaticResource topBtnTxt}" />
</StackPanel>
</Button>
<Button Style="{StaticResource topBtn}" Command="{Binding SaveCommand}">
<StackPanel Style="{StaticResource topBtnPanel}">
<materialDesign:PackIcon Kind="CheckThick" Style="{StaticResource topBtnImg}" />
<TextBlock Text="保存" Style="{StaticResource topBtnTxt}" />
</StackPanel>
</Button>
<!--<Button Style="{StaticResource topBtn}" Command="{Binding RevokeCommand}">
<StackPanel Style="{StaticResource topBtnPanel}">
<materialDesign:PackIcon Kind="CloseThick" Style="{StaticResource topBtnImg}" />
<TextBlock Text="撤销" Style="{StaticResource topBtnTxt}" />
</StackPanel>
</Button>-->
<Button Style="{StaticResource topBtn}" Command="{Binding RefreshCommand}">
<StackPanel Style="{StaticResource topBtnPanel}">
<materialDesign:PackIcon Kind="Refresh" Style="{StaticResource topBtnImg}" />
<TextBlock Text="刷新" Style="{StaticResource topBtnTxt}" />
</StackPanel>
</Button>
<!--<Button Style="{StaticResource topBtn}" Command="{Binding ImportCommand}">
<StackPanel Style="{StaticResource topBtnPanel}">
<materialDesign:PackIcon Kind="ArrowDownThick" Style="{StaticResource topBtnImg}" />
<TextBlock Text="导入" Style="{StaticResource topBtnTxt}" />
</StackPanel>
</Button>
<Button Style="{StaticResource topBtn}" Command="{Binding ExportCommand}">
<StackPanel Style="{StaticResource topBtnPanel}">
<materialDesign:PackIcon Kind="ArrowUpThick" Style="{StaticResource topBtnImg}" />
<TextBlock Text="导出" Style="{StaticResource topBtnTxt}" />
</StackPanel>
</Button>-->
</StackPanel>
<DockPanel Grid.Row="1">
<DataGrid x:Name="InfoGrid" ItemsSource="{Binding InfoList,Mode=TwoWay}">
<DataGrid.Style>
<Style TargetType="DataGrid" BasedOn="{StaticResource MaterialDesignDataGrid}">
<Setter Property="Background" Value="{StaticResource PageBodyBrush}" />
<Setter Property="GridLinesVisibility" Value="All" />
<Setter Property="HorizontalGridLinesBrush" Value="{StaticResource DGLineBrush}" />
<Setter Property="VerticalGridLinesBrush" Value="{StaticResource DGLineBrush}" />
<Setter Property="BorderBrush" Value="{StaticResource DGLineBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="HeadersVisibility" Value="Column" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
<Setter Property="AutoGenerateColumns" Value="False" />
<Setter Property="CanUserAddRows" Value="False" />
<Setter Property="CanUserDeleteRows" Value="False" />
<Setter Property="CanUserResizeRows" Value="False" />
<Setter Property="CanUserResizeColumns" Value="True" />
<Setter Property="CanUserReorderColumns" Value="False" />
<Setter Property="CanUserSortColumns" Value="False" />
</Style>
</DataGrid.Style>
<DataGrid.RowHeaderStyle>
<Style TargetType="DataGridRowHeader" BasedOn="{StaticResource MaterialDesignDataGridRowHeader}">
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
</Style>
</DataGrid.RowHeaderStyle>
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader" BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}">
<Setter Property="Background" Value="{StaticResource DGHeaderBrush}" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
</Style>
</DataGrid.ColumnHeaderStyle>
<i:Interaction.Triggers>
<i:EventTrigger EventName="CellEditEnding">
<mvvm:ExtendEventCommand Command="{Binding UpdateCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<DataGrid.Columns>
<materialDesign:DataGridTextColumn
Header="序号" Width="60" IsReadOnly="True"
Binding="{Binding Number}"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
</materialDesign:DataGridTextColumn>
<!--<materialDesign:DataGridTextColumn
Binding="{Binding NvrId}" Header="编号" Width="60"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
</materialDesign:DataGridTextColumn>-->
<materialDesign:DataGridTextColumn
Header="名称" Width="120"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
<DataGridTextColumn.Binding>
<Binding Path="NvrName" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<mvvm:VerifyRule Type="{x:Static mvvm:VerifyRuleType.NotEmpty}" ValidatesOnTargetUpdated="True" />
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</materialDesign:DataGridTextColumn>
<materialDesign:DataGridComboBoxColumn
Header="类型" Width="90"
ItemsSourceBinding="{Binding DataContext.NvrDeviceList, RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}}">
<DataGridComboBoxColumn.SelectedValueBinding>
<Binding Path="NvrType" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<mvvm:VerifyRule Type="{x:Static mvvm:VerifyRuleType.NotEmpty}" ValidatesOnTargetUpdated="True" />
</Binding.ValidationRules>
</Binding>
</DataGridComboBoxColumn.SelectedValueBinding>
</materialDesign:DataGridComboBoxColumn>
<materialDesign:DataGridTextColumn
Header="地址" Width="120"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
<DataGridTextColumn.Binding>
<Binding Path="NvrIp" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<mvvm:VerifyRule Type="{x:Static mvvm:VerifyRuleType.IP}" ValidatesOnTargetUpdated="True" />
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</materialDesign:DataGridTextColumn>
<materialDesign:DataGridTextColumn
Header="用户姓名" Width="120"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
<DataGridTextColumn.Binding>
<Binding Path="UserName" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<mvvm:VerifyRule Type="{x:Static mvvm:VerifyRuleType.NotEmpty}" ValidatesOnTargetUpdated="True" />
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</materialDesign:DataGridTextColumn>
<materialDesign:DataGridTextColumn
Header="用户密码" Width="120"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
<DataGridTextColumn.Binding>
<Binding Path="UserPwd" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<mvvm:VerifyRule Type="{x:Static mvvm:VerifyRuleType.NotEmpty}" ValidatesOnTargetUpdated="True" />
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</materialDesign:DataGridTextColumn>
<DataGridCheckBoxColumn
Header="启用" Width="60"
Binding="{Binding NvrEnableBool, UpdateSourceTrigger=PropertyChanged}"
ElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnEditingStyle}">
</DataGridCheckBoxColumn>
<materialDesign:DataGridTextColumn
Header="安装位置" Width="*"
Binding="{Binding NvrAddr, UpdateSourceTrigger=PropertyChanged}"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}">
</materialDesign:DataGridTextColumn>
<!--<DataGridCheckBoxColumn Binding="{Binding IsSelected, UpdateSourceTrigger=PropertyChanged}"
ElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridCheckBoxColumnEditingStyle}">
<DataGridCheckBoxColumn.Header>
<Border Background="Transparent">
<CheckBox />
-->
<!--<CheckBox IsChecked="{Binding Data.IsAllItems1Selected, Source={StaticResource DataContextProxy}}" />-->
<!--
</Border>
</DataGridCheckBoxColumn.Header>
<DataGridCheckBoxColumn.HeaderStyle>
<Style
TargetType="{x:Type DataGridColumnHeader}"
BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Center" />
</Style>
</DataGridCheckBoxColumn.HeaderStyle>
</DataGridCheckBoxColumn>-->
</DataGrid.Columns>
</DataGrid>
</DockPanel>
</Grid>
</UserControl>