Вы можете изменить свои модели представления для наследования класса PropertyChangedBase
и реализации интерфейса IHaveDisplayName
, например
class PartsListViewModel : PropertyChangedBase, IHaveDisplayName
{
public string DisplayName { get; set; }
}
Согласно вашему шаблону данных, DisplayName
должно быть объявлено в контексте данных вкладки сам элемент (PartsListViewModel
, DemoViewModel
, et c.), а не в ShellViewModel
. Вы должны установить отображаемое имя перед активацией любой модели вида
public void PartsList()
{
var partsListViewModel = IoC.Get<PartsListViewModel>();
partsListViewModel.DisplayName = "Part List";
ActivateItemAsync(partsListViewModel, new CancellationToken());
}
Вы также должны обновить метод DeactivateItemAndTryClose
и передать параметр другого типа вместо IScreen
public async Task DeactivateItemAndTryClose(PropertyChangedBase item, bool close)
{
await DeactivateItemAsync(item, close, new CancellationToken());
}
Однако, Вы можете оставить свои модели представления как есть, наследуя класс Screen
, только правильно установив DisplayName
для каждой модели представления перед активацией, как показано в методе PartsList()
выше