Fixes
This commit is contained in:
@@ -13,6 +13,6 @@
|
|||||||
</providers>
|
</providers>
|
||||||
</entityFramework>
|
</entityFramework>
|
||||||
<connectionStrings>
|
<connectionStrings>
|
||||||
<add name="LaboratoryDBEntities" connectionString="metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=Room\SQLEXPRESS;initial catalog=LaboratoryDB;integrated security=True;trustservercertificate=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
|
<add name="LaboratoryDBEntities" connectionString="metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=PC311-9;initial catalog=LaboratoryDB;integrated security=True;trustservercertificate=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
|
||||||
</connectionStrings>
|
</connectionStrings>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -156,6 +156,10 @@
|
|||||||
<DependentUpon>Model1.tt</DependentUpon>
|
<DependentUpon>Model1.tt</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Services\AuthService.cs" />
|
<Compile Include="Services\AuthService.cs" />
|
||||||
|
<Compile Include="Services\DelegateCommand.cs" />
|
||||||
|
<Compile Include="Services\InverseBooleanConverter.cs" />
|
||||||
|
<Compile Include="Services\InverseBoolToVisConverter.cs" />
|
||||||
|
<Compile Include="Services\NullToVisibilityConverter.cs" />
|
||||||
<Compile Include="Services\StringToImageConverter.cs" />
|
<Compile Include="Services\StringToImageConverter.cs" />
|
||||||
<Compile Include="Services\Valid.cs" />
|
<Compile Include="Services\Valid.cs" />
|
||||||
<Compile Include="ViewModels\AddPatientViewModel.cs" />
|
<Compile Include="ViewModels\AddPatientViewModel.cs" />
|
||||||
|
|||||||
2
Labaratory/Labaratory/Models/Model11.Designer.cs
generated
2
Labaratory/Labaratory/Models/Model11.Designer.cs
generated
@@ -1,4 +1,4 @@
|
|||||||
// Создание кода T4 для модели "D:\Projects\TASK3UP01\Labaratory\Labaratory\Models\Model1.edmx" включено.
|
// Создание кода T4 для модели "C:\Users\student1\Source\Repos\UP01TASK3\Labaratory\Labaratory\Models\Model1.edmx" включено.
|
||||||
// Чтобы включить формирование кода прежних версий, измените значение свойства "Стратегия создания кода" конструктора
|
// Чтобы включить формирование кода прежних версий, измените значение свойства "Стратегия создания кода" конструктора
|
||||||
// на "Legacy ObjectContext". Это свойство доступно в окне "Свойства", если модель
|
// на "Legacy ObjectContext". Это свойство доступно в окне "Свойства", если модель
|
||||||
// открыта в конструкторе.
|
// открыта в конструкторе.
|
||||||
|
|||||||
29
Labaratory/Labaratory/Services/DelegateCommand.cs
Normal file
29
Labaratory/Labaratory/Services/DelegateCommand.cs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Input;
|
||||||
|
|
||||||
|
namespace Labaratory.Services
|
||||||
|
{
|
||||||
|
public class RelayCommand<T> : ICommand
|
||||||
|
{
|
||||||
|
private readonly Action<T> _execute;
|
||||||
|
private readonly Predicate<T> _canExecute;
|
||||||
|
|
||||||
|
public RelayCommand(Action<T> execute, Predicate<T> canExecute = null)
|
||||||
|
{
|
||||||
|
_execute = execute ?? throw new ArgumentNullException(nameof(execute));
|
||||||
|
_canExecute = canExecute;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool CanExecute(object parameter) => _canExecute == null || _canExecute((T)parameter);
|
||||||
|
public void Execute(object parameter) => _execute((T)parameter);
|
||||||
|
public event EventHandler CanExecuteChanged
|
||||||
|
{
|
||||||
|
add => CommandManager.RequerySuggested += value;
|
||||||
|
remove => CommandManager.RequerySuggested -= value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
18
Labaratory/Labaratory/Services/InverseBoolToVisConverter.cs
Normal file
18
Labaratory/Labaratory/Services/InverseBoolToVisConverter.cs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Data;
|
||||||
|
using System.Windows;
|
||||||
|
|
||||||
|
namespace Labaratory.Services
|
||||||
|
{
|
||||||
|
public class InverseBoolToVisConverter : IValueConverter
|
||||||
|
{
|
||||||
|
public object Convert(object v, Type t, object p, CultureInfo c) =>
|
||||||
|
(bool)v ? Visibility.Collapsed : Visibility.Visible;
|
||||||
|
public object ConvertBack(object v, Type t, object p, CultureInfo c) => throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
16
Labaratory/Labaratory/Services/InverseBooleanConverter.cs
Normal file
16
Labaratory/Labaratory/Services/InverseBooleanConverter.cs
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Data;
|
||||||
|
|
||||||
|
namespace Labaratory.Services
|
||||||
|
{
|
||||||
|
public class InverseBooleanConverter : IValueConverter
|
||||||
|
{
|
||||||
|
public object Convert(object v, Type t, object p, CultureInfo c) => !(bool)v;
|
||||||
|
public object ConvertBack(object v, Type t, object p, CultureInfo c) => !(bool)v;
|
||||||
|
}
|
||||||
|
}
|
||||||
18
Labaratory/Labaratory/Services/NullToVisibilityConverter.cs
Normal file
18
Labaratory/Labaratory/Services/NullToVisibilityConverter.cs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Data;
|
||||||
|
using System.Windows;
|
||||||
|
|
||||||
|
namespace Labaratory.Services
|
||||||
|
{
|
||||||
|
public class NullToVisibilityConverter : IValueConverter
|
||||||
|
{
|
||||||
|
public object Convert(object v, Type t, object p, CultureInfo c) =>
|
||||||
|
(v == null || string.IsNullOrEmpty(v.ToString())) ? Visibility.Collapsed : Visibility.Visible;
|
||||||
|
public object ConvertBack(object v, Type t, object p, CultureInfo c) => throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -48,7 +48,7 @@ namespace Labaratory.ViewModels
|
|||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (_updatePhotoCommand == null)
|
if (_updatePhotoCommand == null)
|
||||||
_updatePhotoCommand = new RelayCommand<object>(obj => AuthService.UpdatePhoto("Admin.png"));
|
_updatePhotoCommand = new Services.RelayCommand<object>(obj => AuthService.UpdatePhoto("Admin.png"));
|
||||||
return _updatePhotoCommand;
|
return _updatePhotoCommand;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -97,7 +97,7 @@ namespace Labaratory.ViewModels
|
|||||||
{
|
{
|
||||||
if (_saveUserCommand == null)
|
if (_saveUserCommand == null)
|
||||||
{
|
{
|
||||||
_saveUserCommand = new RelayCommand<object>(obj => SaveUser());
|
_saveUserCommand = new Services.RelayCommand<object>(obj => SaveUser());
|
||||||
}
|
}
|
||||||
return _saveUserCommand;
|
return _saveUserCommand;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using System.Collections.ObjectModel;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
using System.Data.Entity; // Для .Include() в старых версиях EF
|
using System.Data.Entity;
|
||||||
using Wpf.Ui.Input;
|
using Wpf.Ui.Input;
|
||||||
|
|
||||||
namespace Labaratory.ViewModels
|
namespace Labaratory.ViewModels
|
||||||
@@ -45,7 +45,7 @@ namespace Labaratory.ViewModels
|
|||||||
public ByhalterModel(Models.User user)
|
public ByhalterModel(Models.User user)
|
||||||
{
|
{
|
||||||
CurrentUser = user;
|
CurrentUser = user;
|
||||||
_db = new LaboratoryDBEntities(); // Используем ваш контекст
|
_db = new LaboratoryDBEntities();
|
||||||
|
|
||||||
LoadInitialData();
|
LoadInitialData();
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ namespace Labaratory.ViewModels
|
|||||||
private void GenerateRevenueReport()
|
private void GenerateRevenueReport()
|
||||||
{
|
{
|
||||||
var data = _db.Rendered_Services
|
var data = _db.Rendered_Services
|
||||||
.Include(s => s.OrderItem)
|
.Include(s => s.Order_Items)
|
||||||
.OrderByDescending(s => s.ExecutionDate)
|
.OrderByDescending(s => s.ExecutionDate)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,93 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using Labaratory.Models;
|
||||||
|
using Labaratory.Services;
|
||||||
|
|
||||||
namespace Labaratory.ViewModels
|
namespace Labaratory.ViewModels
|
||||||
{
|
{
|
||||||
public class LaborantExplorer : BaseViewModel
|
public class LaborantExplorer : BaseViewModel
|
||||||
{
|
{
|
||||||
|
private LaboratoryDBEntities _db = new LaboratoryDBEntities(); // Ваш контекст Entity Framework
|
||||||
|
private Analyzer _selectedAnalyzer;
|
||||||
|
|
||||||
public Models.User CurrentUser { get; set; }
|
public Models.User CurrentUser { get; set; }
|
||||||
|
|
||||||
|
// Список доступных анализаторов
|
||||||
|
public ObservableCollection<Analyzer> Analyzers { get; set; }
|
||||||
|
|
||||||
|
// Список услуг для выбранного анализатора
|
||||||
|
public ObservableCollection<Service> PendingServices { get; set; }
|
||||||
|
|
||||||
|
public Analyzer SelectedAnalyzer
|
||||||
|
{
|
||||||
|
get => _selectedAnalyzer;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_selectedAnalyzer = value;
|
||||||
|
OnPropertyChanged();
|
||||||
|
LoadServices(); // Загружаем услуги при выборе прибора
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public LaborantExplorer(Models.User user)
|
public LaborantExplorer(Models.User user)
|
||||||
{
|
{
|
||||||
CurrentUser = user;
|
CurrentUser = user;
|
||||||
}
|
LoadInitialData();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoadInitialData()
|
||||||
|
{
|
||||||
|
// Загрузка анализаторов из БД
|
||||||
|
Analyzers = new ObservableCollection<Analyzer>(_db.Analyzers.ToList());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoadServices()
|
||||||
|
{
|
||||||
|
var services = _db.Services.ToList();
|
||||||
|
|
||||||
|
PendingServices = new ObservableCollection<Service>(services);
|
||||||
|
OnPropertyChanged(nameof(PendingServices));
|
||||||
|
}
|
||||||
|
|
||||||
|
public ICommand SendToResearchCommand => new DelegateCommand<Service>(async (service) =>
|
||||||
|
{
|
||||||
|
if (SelectedAnalyzer.IsBusy)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Анализатор занят!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
service.IsProcessing = true;
|
||||||
|
SelectedAnalyzer.IsBusy = true;
|
||||||
|
|
||||||
|
await Task.Run(async () =>
|
||||||
|
{
|
||||||
|
Random rng = new Random();
|
||||||
|
for (int i = 0; i <= 100; i += 10)
|
||||||
|
{
|
||||||
|
service.Progress = i;
|
||||||
|
await Task.Delay(500);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Имитация получения результата
|
||||||
|
double resultValue = rng.NextDouble() * 100;
|
||||||
|
service.ResultValue = resultValue.ToString("F2");
|
||||||
|
|
||||||
|
// Логика проверки на сбой (отклонение в 3 раза от среднего)
|
||||||
|
double average = 20.0; // В реальности берем из БД
|
||||||
|
if (resultValue > average * 3 || resultValue < average / 3)
|
||||||
|
{
|
||||||
|
Application.Current.Dispatcher.Invoke(() =>
|
||||||
|
MessageBox.Show("Внимание: возможен сбой или некачественный биоматериал!"));
|
||||||
|
}
|
||||||
|
|
||||||
|
service.IsProcessing = false;
|
||||||
|
SelectedAnalyzer.IsBusy = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<Window x:Class="Labaratory.Views.Laborant"
|
<Window x:Class="Labaratory.Views.ByhalterWindow"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
|
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
<StackPanel Grid.Row="0" Margin="0,0,0,20">
|
<StackPanel Grid.Row="0" Margin="0,0,0,20">
|
||||||
<TextBlock Text="Формирование нового счета" FontSize="18" FontWeight="SemiBold" Margin="0,0,0,10"/>
|
<TextBlock Text="Формирование нового счета" FontSize="18" FontWeight="SemiBold" Margin="0,0,0,10"/>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<ComboBox ItemsSource="{Binding InsuranceCompanies}" DisplayMemberPath="Name" SelectedItem="{Binding SelectedCompany}" Width="250"/>
|
<ComboBox ItemsSource="{Binding InsuranceCompanies}" DisplayMemberPath="CompanyName" SelectedItem="{Binding SelectedCompany}" Width="250"/>
|
||||||
<ui:Button Content="Создать счет" Icon="Add24" Command="{Binding CreateInvoiceCommand}" Margin="10,0,0,0" Appearance="Primary"/>
|
<ui:Button Content="Создать счет" Icon="Add24" Command="{Binding CreateInvoiceCommand}" Margin="10,0,0,0" Appearance="Primary"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
@@ -66,13 +66,6 @@
|
|||||||
<DataGridTextColumn Header="Компания" Binding="{Binding CompanyName}"/>
|
<DataGridTextColumn Header="Компания" Binding="{Binding CompanyName}"/>
|
||||||
<DataGridTextColumn Header="Дата" Binding="{Binding Date, StringFormat=d}"/>
|
<DataGridTextColumn Header="Дата" Binding="{Binding Date, StringFormat=d}"/>
|
||||||
<DataGridTextColumn Header="Сумма" Binding="{Binding TotalAmount, StringFormat=C}"/>
|
<DataGridTextColumn Header="Сумма" Binding="{Binding TotalAmount, StringFormat=C}"/>
|
||||||
<DataGridTemplateColumn Header="Действие">
|
|
||||||
<DataGridTemplateColumn.CellTemplate>
|
|
||||||
<DataTemplate>
|
|
||||||
<ui:Button Content="Скачать" Icon="ArrowDownload24" Command="{Binding DataContext.DownloadInvoiceCommand, RelativeSource={RelativeSource AncestorType=ui:DataGrid}}"/>
|
|
||||||
</DataTemplate>
|
|
||||||
</DataGridTemplateColumn.CellTemplate>
|
|
||||||
</DataGridTemplateColumn>
|
|
||||||
</ui:DataGrid.Columns>
|
</ui:DataGrid.Columns>
|
||||||
</ui:DataGrid>
|
</ui:DataGrid>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -1,12 +1,91 @@
|
|||||||
<Window x:Class="Labaratory.Views.LaborantExplorer"
|
<Window x:Class="Labaratory.Views.LaborantExplorer"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:services="clr-namespace:Labaratory.Services"
|
||||||
xmlns:local="clr-namespace:Labaratory.Views"
|
Title="Рабочее бугхалтера" Height="700" Width="900"
|
||||||
mc:Ignorable="d"
|
Background="{ui:ThemeResource ApplicationBackgroundBrush}"
|
||||||
Title="LaborantExplorer" Height="450" Width="800">
|
Foreground="{ui:ThemeResource TextFillColorPrimaryBrush}">
|
||||||
<Grid>
|
<Window.Resources>
|
||||||
|
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
|
||||||
|
|
||||||
|
<services:StringToImageConverter x:Key="StringToImageConverter" />
|
||||||
|
</Window.Resources>
|
||||||
|
<Grid>
|
||||||
|
<TabControl>
|
||||||
|
<TabItem Header="Анализатор">
|
||||||
|
<Grid Margin="20">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="250"/>
|
||||||
|
<ColumnDefinition Width="*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<StackPanel Grid.Column ="0" Margin="0,0,10,0">
|
||||||
|
<TextBlock Text="Доступные анализаторы" FontSize="18" Margin="0,0,0,10"/>
|
||||||
|
<ListBox ItemsSource="{Binding Analyzers}" SelectedItem="{Binding SelectedAnalyzer}">
|
||||||
|
<ListBox.ItemTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<ui:SymbolIcon Symbol="DeveloperBoard24"/>
|
||||||
|
<TextBlock Text="{Binding Name}" Margin="10,0"/>
|
||||||
|
<ui:Badge Appearance="Success" Visibility="{Binding IsBusy, Converter={StaticResource InverseBoolToVis}}"/>
|
||||||
|
</StackPanel>
|
||||||
|
</DataTemplate>
|
||||||
|
</ListBox.ItemTemplate>
|
||||||
|
</ListBox>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<ui:Card Grid.Column="1" VerticalAlignment="Stretch">
|
||||||
|
<DataGrid ItemsSource="{Binding PendingServices}" AutoGenerateColumns="False" CanUserAddRows="False">
|
||||||
|
<DataGrid.Columns>
|
||||||
|
<DataGridTextColumn Header="Услуга" Binding="{Binding Name}" Width="*"/>
|
||||||
|
|
||||||
|
<DataGridTemplateColumn Header="Статус/Прогресс" Width="150">
|
||||||
|
<DataGridTemplateColumn.CellTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<Grid>
|
||||||
|
<ui:ProgressRing IsIndeterminate="False"
|
||||||
|
Progress="{Binding Progress}"
|
||||||
|
Visibility="{Binding IsProcessing, Converter={StaticResource BooleanToVisibilityConverter}}"
|
||||||
|
Width="30"
|
||||||
|
Height="30"/>
|
||||||
|
|
||||||
|
<TextBlock Text="Ожидание"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
Visibility="{Binding IsProcessing, Converter={StaticResource InverseBoolToVis}}"/>
|
||||||
|
</Grid>
|
||||||
|
</DataTemplate>
|
||||||
|
</DataGridTemplateColumn.CellTemplate>
|
||||||
|
</DataGridTemplateColumn>
|
||||||
|
|
||||||
|
<DataGridTextColumn Header="Результат" Binding="{Binding ResultValue}" Width="80"/>
|
||||||
|
|
||||||
|
<DataGridTemplateColumn Header="Действия" Width="200">
|
||||||
|
<DataGridTemplateColumn.CellTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<StackPanel Orientation="Horizontal">
|
||||||
|
<ui:Button Content="Отправить"
|
||||||
|
Command="{Binding DataContext.SendToResearchCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}"
|
||||||
|
CommandParameter="{Binding}"
|
||||||
|
Appearance="Primary"
|
||||||
|
IsEnabled="{Binding IsProcessing, Converter={StaticResource InverseBooleanConverter}}"/>
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Visibility="{Binding ResultValue, Converter={StaticResource NullToVisibilityConverter}}">
|
||||||
|
<ui:Button Icon="Checkmark24" Appearance="Success" Margin="5,0"
|
||||||
|
Command="{Binding DataContext.ApproveCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}"/>
|
||||||
|
<ui:Button Icon="Dismiss24" Appearance="Danger"
|
||||||
|
Command="{Binding DataContext.RejectCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}"/>
|
||||||
|
</StackPanel>
|
||||||
|
</StackPanel>
|
||||||
|
</DataTemplate>
|
||||||
|
</DataGridTemplateColumn.CellTemplate>
|
||||||
|
</DataGridTemplateColumn>
|
||||||
|
</DataGrid.Columns>
|
||||||
|
</DataGrid>
|
||||||
|
</ui:Card>
|
||||||
|
</Grid>
|
||||||
|
</TabItem>
|
||||||
|
</TabControl>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Window>
|
</Window>
|
||||||
|
|||||||
Reference in New Issue
Block a user