Избегайте повторного открытия окна на том же объектеC#

Место общения программистов C#
Anonymous
Избегайте повторного открытия окна на том же объекте

Сообщение Anonymous »

Есть список сотрудников. По команде хочу открыть окно подробной информации о сотруднике. Как избежать повторного открытия окна для одного и того же сотрудника?
Добавить в ВМ словарь открытых "сотрудников"? Я могу контролировать, кто открывал и закрывал. Тогда как мне сделать так, чтобы при попытке открыть «открытого» сотрудника фокус передавался на это окно и оно всплывало?
public class EmployeeListViewModel : BindableBase
{
private readonly IUnitOfWork _unitOfWork;
private readonly IDialogService _dialogService;

private ObservableCollection employees;
public ObservableCollection Employees
{
get => employees;
set => SetProperty(ref employees, value);
}

private Employee selectedEmployee;
public Employee SelectedEmployee
{
get => selectedEmployee;
set => SetProperty(ref selectedEmployee, value);
}

public DelegateCommand OpenSelectedEmployeeCardCommand { get; }

public DocumentsListViewModel(IUnitOfWork unitOfWork, IDialogService dialogService)
{
_unitOfWork = unitOfWork;
_dialogService = dialogService;

OpenSelectedEmployeeCardCommand = new DelegateCommand(OpenSelectedEmployeeCardCommandExecute);
}

private void OpenSelectedEmployeeCardCommandExecute()
{
_dialogService.Show(
nameof(EmployeeCard),
new DialogParameters { { "EmployeeId", SelectedEmployee.Id } },
result => { });
}
}


Подробнее здесь: https://stackoverflow.com/questions/786 ... ame-object

Вернуться в «C#»