feat: add Batch Workstation & Ambiguity User Resolver dialog with Dry-Run preview and multi-parameter controls
This commit is contained in:
@@ -0,0 +1,234 @@
|
||||
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Background="{StaticResource BgDarkBrush}">
|
||||
<Grid Margin="24">
|
||||
<Grid.RowDefinitions>
|
||||
<!-- 0. Header -->
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- 1. Main 2-Column Split Layout -->
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- 0. Header -->
|
||||
<DockPanel Grid.Row="0" Margin="0,0,0,18">
|
||||
<StackPanel>
|
||||
<TextBlock Text="인프라 일괄 작업 센터 (Batch Workstation)" FontSize="24" FontWeight="Bold" Foreground="#FFFFFF" />
|
||||
<TextBlock Text="다중 사용자 계정, Share 권한, AD 보안그룹 및 NetApp Quota 변경을 단일 트랜잭션으로 구성하여 시뮬레이션 후 일괄 실행합니다."
|
||||
FontSize="13" Foreground="{StaticResource TextSecondaryBrush}" Margin="0,4,0,0" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<Button x:Name="BtnResetWorkstation" Content="작업 폼 초기화" Style="{StaticResource SecondaryButtonStyle}" Margin="0,0,8,0" Padding="12,6" />
|
||||
<Button x:Name="BtnOpenResolverStandalone" Content="🔍 동명이인 / 계정 검증기" Style="{StaticResource PrimaryButtonStyle}" Padding="12,6" />
|
||||
</StackPanel>
|
||||
</DockPanel>
|
||||
|
||||
<!-- 1. Main Split Layout -->
|
||||
<Grid Grid.Row="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<!-- Left: Modular Parameter Inputs (운영자가 자유롭게 조합하는 폼) -->
|
||||
<ColumnDefinition Width="5*" />
|
||||
<!-- Right: Simulation (Dry-Run) Preview & Execution Grid -->
|
||||
<ColumnDefinition Width="6*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- LEFT: Action Config Form (Scrollable) -->
|
||||
<ScrollViewer Grid.Column="0" VerticalScrollBarVisibility="Auto" Margin="0,0,12,0">
|
||||
<StackPanel>
|
||||
<!-- Card 1: Target Users Specification -->
|
||||
<Border Style="{StaticResource ModernCardStyle}" Margin="0,0,0,14">
|
||||
<StackPanel>
|
||||
<DockPanel Margin="0,0,0,10">
|
||||
<TextBlock Text="1. 대상 사용자 지정 (Multi-User Input)" FontSize="14.5" FontWeight="Bold" Foreground="#FFFFFF" />
|
||||
<Button x:Name="BtnLaunchResolver" Content="🔍 동명이인 검증기에서 불러오기..." Style="{StaticResource PrimaryButtonStyle}" Padding="10,4" FontSize="11.5" HorizontalAlignment="Right" />
|
||||
</DockPanel>
|
||||
|
||||
<TextBlock Text="사용자 ID 또는 이름 (줄바꿈 / 쉼표로 다중 입력 가능):" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" Margin="0,0,0,4" />
|
||||
<TextBox x:Name="TxtWsUserTokens" Height="70" AcceptsReturn="True" TextWrapping="Wrap"
|
||||
Style="{StaticResource ModernTextBoxStyle}" Margin="0,0,0,8"
|
||||
Text="gdhong, cskim, yylee" />
|
||||
|
||||
<DockPanel>
|
||||
<TextBlock x:Name="TxtTargetUsersSummary" Text="현재 3명의 사용자가 지정되었습니다." FontSize="11.5" Foreground="#60A5FA" VerticalAlignment="Center" />
|
||||
<Button x:Name="BtnQuickCheckUsers" Content="빠른 계정 확인" Style="{StaticResource SecondaryButtonStyle}" Padding="8,2" FontSize="11" HorizontalAlignment="Right" />
|
||||
</DockPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Card 2: Share & AD Security Group Association -->
|
||||
<Border Style="{StaticResource ModernCardStyle}" Margin="0,0,0,14">
|
||||
<StackPanel>
|
||||
<TextBlock Text="2. 공유 권한 및 AD 보안그룹 설정" FontSize="14.5" FontWeight="Bold" Foreground="#FFFFFF" Margin="0,0,0,10" />
|
||||
|
||||
<Grid Margin="0,0,0,8">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<StackPanel Grid.Column="0" Margin="0,0,8,0">
|
||||
<TextBlock Text="대상 Share (공유) 선택 / 입력:" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" Margin="0,0,0,4" />
|
||||
<ComboBox x:Name="CmbWsShare" Height="34">
|
||||
<ComboBoxItem Content="Finance_Share" IsSelected="True" />
|
||||
<ComboBoxItem Content="HR_Share" />
|
||||
<ComboBoxItem Content="DevOps_Share" />
|
||||
<ComboBoxItem Content="Public_Projects" />
|
||||
</ComboBox>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Column="1" Margin="8,0,0,0">
|
||||
<TextBlock Text="작업 유형 (Action):" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" Margin="0,0,0,4" />
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="0,6,0,0">
|
||||
<RadioButton x:Name="RadActionAdd" Content="권한 추가 (Grant)" IsChecked="True" Foreground="#FFFFFF" Margin="0,0,16,0" />
|
||||
<RadioButton x:Name="RadActionRemove" Content="권한 해제 (Revoke)" Foreground="#FFFFFF" />
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<CheckBox x:Name="ChkWsSyncAdGroup" Content="Share 이름과 동일한 AD 보안그룹 멤버십 자동 동기화" IsChecked="True"
|
||||
Foreground="#93C5FD" FontWeight="SemiBold" Margin="0,4,0,0" />
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Card 3: NetApp Qtree & Quota Limit (Optional Module) -->
|
||||
<Border Style="{StaticResource ModernCardStyle}" Margin="0,0,0,14">
|
||||
<StackPanel>
|
||||
<DockPanel Margin="0,0,0,10">
|
||||
<TextBlock Text="3. NetApp Qtree 및 Quota 용량 조정 (선택 사항)" FontSize="14.5" FontWeight="Bold" Foreground="#FFFFFF" />
|
||||
<CheckBox x:Name="ChkWsEnableQuota" Content="Quota 조정 활성화" IsChecked="True"
|
||||
Foreground="#10B981" FontWeight="Bold" HorizontalAlignment="Right" />
|
||||
</DockPanel>
|
||||
|
||||
<Grid Margin="0,0,0,8">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<StackPanel Grid.Column="0" Margin="0,0,8,0">
|
||||
<TextBlock Text="대상 볼륨 / Qtree:" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" Margin="0,0,0,4" />
|
||||
<TextBox x:Name="TxtWsTargetQtree" Text="/vol/vol_cifs_share01/Finance_Share" Style="{StaticResource ModernTextBoxStyle}" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Column="1" Margin="8,0,0,0">
|
||||
<TextBlock Text="Quota 적용 단위:" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" Margin="0,0,0,4" />
|
||||
<ComboBox x:Name="CmbWsQuotaUnit" SelectedIndex="0" Height="34">
|
||||
<ComboBoxItem Content="사용자별 (User Quota)" />
|
||||
<ComboBoxItem Content="트리 전체 (Tree Quota)" />
|
||||
<ComboBoxItem Content="그룹별 (Group Quota)" />
|
||||
</ComboBox>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<StackPanel Grid.Column="0" Margin="0,0,8,0">
|
||||
<TextBlock Text="새 Soft Limit (GB):" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" Margin="0,0,0,4" />
|
||||
<TextBox x:Name="TxtWsSoftLimit" Text="450" Style="{StaticResource ModernTextBoxStyle}" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Column="1" Margin="8,0,0,0">
|
||||
<TextBlock Text="새 Hard Limit (GB):" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" Margin="0,0,0,4" />
|
||||
<TextBox x:Name="TxtWsHardLimit" Text="500" Style="{StaticResource ModernTextBoxStyle}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Card 4: Audit Reason & Ticket Information -->
|
||||
<Border Style="{StaticResource ModernCardStyle}" Margin="0,0,0,14">
|
||||
<StackPanel>
|
||||
<TextBlock Text="4. 작업 사유 및 감사/승인 정보 (Audit Information)" FontSize="14.5" FontWeight="Bold" Foreground="#FFFFFF" Margin="0,0,0,10" />
|
||||
|
||||
<TextBlock Text="처리 사유 (필수 입력):" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" Margin="0,0,0,4" />
|
||||
<TextBox x:Name="TxtWsReason" Text="2026 하반기 신규 프로젝트 투입에 따른 권한 및 Quota 일괄 부여"
|
||||
Style="{StaticResource ModernTextBoxStyle}" Margin="0,0,0,10" />
|
||||
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<StackPanel Grid.Column="0" Margin="0,0,8,0">
|
||||
<TextBlock Text="ITSM / 결재 티켓 번호:" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" Margin="0,0,0,4" />
|
||||
<TextBox x:Name="TxtWsTicketNo" Text="SR-20261020-088" Style="{StaticResource ModernTextBoxStyle}" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Column="1" Margin="8,0,0,0">
|
||||
<TextBlock Text="권한 만료일 (임시 권한 시):" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" Margin="0,0,0,4" />
|
||||
<TextBox x:Name="TxtWsExpireDate" Text="9999-12-31 (무기한)" Style="{StaticResource ModernTextBoxStyle}" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
|
||||
<!-- RIGHT: Simulation (Dry-Run) & Execution Console -->
|
||||
<Border Grid.Column="1" Style="{StaticResource ModernCardStyle}" Margin="12,0,0,0" Padding="14">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<!-- Simulation Action Bar -->
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- Simulation Grid Preview -->
|
||||
<RowDefinition Height="*" />
|
||||
<!-- Execution Console Log -->
|
||||
<RowDefinition Height="160" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- 1. Simulation Controls -->
|
||||
<DockPanel Grid.Row="0" Margin="0,0,0,12">
|
||||
<StackPanel>
|
||||
<TextBlock Text="실행 영향도 분석 및 시뮬레이션 (Dry-Run Preview)" FontSize="14.5" FontWeight="Bold" Foreground="#FFFFFF" />
|
||||
<TextBlock Text="실제 인프라에 반영하기 전 변경 예정 항목을 안전하게 사전 검증합니다." FontSize="11.5" Foreground="{StaticResource TextSecondaryBrush}" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button x:Name="BtnRunDryRun" Content="👁 사전 시뮬레이션 (Dry-Run)" Style="{StaticResource SecondaryButtonStyle}" Margin="0,0,8,0" Padding="12,6" />
|
||||
<Button x:Name="BtnApplyBatch" Content="⚡ 최종 일괄 실행 (Apply)" Style="{StaticResource PrimaryButtonStyle}" Padding="16,6" FontWeight="Bold" />
|
||||
</StackPanel>
|
||||
</DockPanel>
|
||||
|
||||
<!-- 2. Simulation Items DataGrid -->
|
||||
<DataGrid x:Name="GridSimulationResults" Grid.Row="1" Style="{StaticResource ModernDataGridStyle}" Margin="0,0,0,12">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="순번" Binding="{Binding StepNo}" Width="50" />
|
||||
<DataGridTextColumn Header="대상 시스템" Binding="{Binding TargetSystem}" Width="120" />
|
||||
<DataGridTextColumn Header="작업 항목" Binding="{Binding ActionItem}" Width="130" />
|
||||
<DataGridTextColumn Header="대상 객체 / 사용자" Binding="{Binding TargetObject}" Width="150" />
|
||||
<DataGridTextColumn Header="변경 전 상태" Binding="{Binding BeforeState}" Width="110" />
|
||||
<DataGridTextColumn Header="변경 예정 상태" Binding="{Binding AfterState}" Width="120" />
|
||||
<DataGridTextColumn Header="사전 검증" Binding="{Binding ValidationResult}" Width="*" />
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
<!-- 3. Bottom Execution Log Console -->
|
||||
<Border Grid.Row="2" Background="#090D16" CornerRadius="6" Padding="10">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<DockPanel Grid.Row="0" Margin="0,0,0,4">
|
||||
<TextBlock Text="일괄 트랜잭션 실행 로그 (Execution Output):" FontSize="11.5" FontWeight="SemiBold" Foreground="#94A3B8" />
|
||||
<TextBlock x:Name="TxtWsExecutionStatus" Text="대기 중 - 시뮬레이션을 실행하십시오." FontSize="11.5" Foreground="#60A5FA" HorizontalAlignment="Right" />
|
||||
</DockPanel>
|
||||
|
||||
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
|
||||
<TextBox x:Name="TxtWsConsoleLog" Background="Transparent" Foreground="#A78BFA" BorderThickness="0"
|
||||
IsReadOnly="True" FontFamily="Consolas" FontSize="11.5" TextWrapping="Wrap"
|
||||
Text="[준비 완료] 좌측 폼에 필요한 파라미터를 입력하고 [사전 시뮬레이션(Dry-Run)]을 실행하십시오." />
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@@ -0,0 +1,123 @@
|
||||
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="다중 사용자 계정 검증 및 동명이인 식별기 (User Multi-Resolver)"
|
||||
Height="680" Width="980"
|
||||
MinHeight="540" MinWidth="800"
|
||||
WindowStartupLocation="CenterOwner"
|
||||
Background="#0F172A"
|
||||
FontFamily="{StaticResource ModernFont}">
|
||||
|
||||
<Grid Margin="20">
|
||||
<Grid.RowDefinitions>
|
||||
<!-- 0. Header -->
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- 1. Input Box & Action Area -->
|
||||
<RowDefinition Height="Auto" />
|
||||
<!-- 2. Ambiguity & Resolution Results Grid -->
|
||||
<RowDefinition Height="*" />
|
||||
<!-- 3. Bottom Confirm Bar -->
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- 0. Header -->
|
||||
<DockPanel Grid.Row="0" Margin="0,0,0,16">
|
||||
<StackPanel>
|
||||
<TextBlock Text="다중 사용자 입력 및 동명이인 검증기" FontSize="20" FontWeight="Bold" Foreground="#FFFFFF" />
|
||||
<TextBlock Text="사용자 ID(sAMAccountName) 또는 이름을 줄바꿈/쉼표로 복사-붙여넣기하여 동명이인 여부를 확인하고 최종 대상을 확정합니다."
|
||||
FontSize="12" Foreground="{StaticResource TextSecondaryBrush}" Margin="0,3,0,0" />
|
||||
</StackPanel>
|
||||
<Border Background="#1E293B" CornerRadius="6" Padding="10,4" HorizontalAlignment="Right" VerticalAlignment="Center">
|
||||
<TextBlock Text="동명이인 자동 감지 엔진 활성" FontSize="11" FontWeight="SemiBold" Foreground="#60A5FA" />
|
||||
</Border>
|
||||
</DockPanel>
|
||||
|
||||
<!-- 1. Input Box Area -->
|
||||
<Border Grid.Row="1" Style="{StaticResource ModernCardStyle}" Margin="0,0,0,14" Padding="14">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<DockPanel Grid.Row="0" Margin="0,0,0,8">
|
||||
<TextBlock Text="사용자 ID 또는 이름 대량 입력 (줄바꿈 / 쉼표 / 탭 구분):" FontSize="12.5" FontWeight="SemiBold" Foreground="{StaticResource TextPrimaryBrush}" />
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button x:Name="BtnPasteClipboard" Content="📋 클립보드 붙여넣기" Style="{StaticResource SecondaryButtonStyle}" Padding="8,2" FontSize="11" Margin="0,0,6,0" />
|
||||
<Button x:Name="BtnClearInput" Content="입력 지우기" Style="{StaticResource SecondaryButtonStyle}" Padding="8,2" FontSize="11" />
|
||||
</StackPanel>
|
||||
</DockPanel>
|
||||
|
||||
<Grid Grid.Row="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="150" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBox x:Name="TxtMultiInput" Height="75" AcceptsReturn="True" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto"
|
||||
Style="{StaticResource ModernTextBoxStyle}" Margin="0,0,10,0"
|
||||
Text="gdhong
홍길동
김철수
yylee
unknown_user" />
|
||||
|
||||
<Button x:Name="BtnResolveUsers" Grid.Column="1" Content="🔍 사용자 검증
및 동명이인 분석" Style="{StaticResource PrimaryButtonStyle}"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" FontSize="13" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- 2. Results Grid -->
|
||||
<Border Grid.Row="2" Style="{StaticResource ModernCardStyle}" Margin="0,0,0,14" Padding="12">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Filter / Quick Action Bar -->
|
||||
<DockPanel Grid.Row="0" Margin="0,0,0,10">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="검증 및 식별 결과:" FontSize="13.5" FontWeight="Bold" Foreground="#FFFFFF" Margin="0,0,12,0" VerticalAlignment="Center" />
|
||||
<Border x:Name="BadgeSummary" Background="#1E3A8A" CornerRadius="4" Padding="8,2">
|
||||
<TextBlock x:Name="TxtResolutionSummary" Text="검증 대기 중" FontSize="11.5" Foreground="#FFFFFF" />
|
||||
</Border>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button x:Name="BtnSelectResolvedOnly" Content="정상 매칭건만 선택" Style="{StaticResource SecondaryButtonStyle}" Padding="8,3" FontSize="11" Margin="0,0,6,0" />
|
||||
<Button x:Name="BtnSelectAllDialog" Content="전체 선택" Style="{StaticResource SecondaryButtonStyle}" Padding="8,3" FontSize="11" Margin="0,0,6,0" />
|
||||
<Button x:Name="BtnDeselectAllDialog" Content="선택 해제" Style="{StaticResource SecondaryButtonStyle}" Padding="8,3" FontSize="11" />
|
||||
</StackPanel>
|
||||
</DockPanel>
|
||||
|
||||
<!-- Resolver DataGrid -->
|
||||
<DataGrid x:Name="GridResolvedUsers" Grid.Row="1" Style="{StaticResource ModernDataGridStyle}">
|
||||
<DataGrid.Columns>
|
||||
<DataGridCheckBoxColumn Header="확정" Binding="{Binding IsSelected, UpdateSourceTrigger=PropertyChanged}" Width="50" />
|
||||
<DataGridTextColumn Header="검증 상태" Binding="{Binding Status}" Width="130" />
|
||||
<DataGridTextColumn Header="입력 원문" Binding="{Binding InputToken}" Width="100" />
|
||||
<DataGridTextColumn Header="확정 ID (SamAccount)" Binding="{Binding SamAccountName}" Width="140" />
|
||||
<DataGridTextColumn Header="성명" Binding="{Binding DisplayName}" Width="90" />
|
||||
<DataGridTextColumn Header="부서 (동명이인 판별)" Binding="{Binding Department}" Width="140" />
|
||||
<DataGridTextColumn Header="직급" Binding="{Binding Title}" Width="70" />
|
||||
<DataGridTextColumn Header="사번" Binding="{Binding EmpId}" Width="85" />
|
||||
<DataGridTextColumn Header="식별 메모 / 안내" Binding="{Binding Note}" Width="*" />
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
<TextBlock Grid.Row="2" Text="* 동명이인 항목은 부서 및 사번을 확인하신 후 올바른 대상의 [확정] 체크박스를 1개만 체크하십시오."
|
||||
FontSize="11" Foreground="#F59E0B" Margin="2,6,0,0" />
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- 3. Bottom Confirm Bar -->
|
||||
<Border Grid.Row="3" Margin="0">
|
||||
<DockPanel>
|
||||
<TextBlock x:Name="TxtSelectedCountMsg" Text="현재 0명의 사용자가 확정 선택되었습니다."
|
||||
FontSize="12.5" Foreground="{StaticResource TextSecondaryBrush}" VerticalAlignment="Center" />
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button x:Name="BtnDialogCancel" Content="취소" Style="{StaticResource SecondaryButtonStyle}" Padding="16,8" Margin="0,0,8,0" />
|
||||
<Button x:Name="BtnDialogConfirm" Content="✔ 선택된 사용자 작업 폼에 적용" Style="{StaticResource PrimaryButtonStyle}" Padding="18,8" />
|
||||
</StackPanel>
|
||||
</DockPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Window>
|
||||
Reference in New Issue
Block a user