Есть список сотрудников. По команде хочу открыть окно подробной информации о сотруднике. Как избежать повторного открытия окна для одного и того же сотрудника?
Добавить в ВМ словарь открытых "сотрудников"? Я могу контролировать, кто открывал и закрывал. Тогда как мне сделать так, чтобы при попытке открыть «открытого» сотрудника фокус передавался на это окно и оно всплывало?
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