Я нашел хорошую реализацию TabControl: https://docs.catelproject.com/5.1/tips-tricks/mvvm/using-tabbed-interface-with-mvvm/ . Но столкнулся с проблемой вот в этом классе.
public class TabItem
{
public TabItem(IViewModel viewModel)
{
Argument.IsNotNull(() => viewModel);
ViewModel = viewModel;
CanClose = true;
if (!viewModel.IsClosed)
{
viewModel.ClosedAsync += OnViewModelClosed;
}
}
public IViewModel ViewModel { get; private set; }
public bool CanClose { get; set; }
public object Tag { get; set; }
public event EventHandler<EventArgs> Closed;
private async Task OnViewModelClosed(object sender, ViewModelClosedEventArgs e)
{
var vm = ViewModel;
if (vm != null)
{
vm.ClosedAsync -= OnViewModelClosed;
}
Closed.SafeInvoke(this);
}
В строке Closed.SafeInvoke(this); выдает исключение о том что метод SafeInvoke() является устаревшим. Причина в том что код из примера написан для Сatel 3.3, я же пишу код уже на Catel 5.12 (переписывать весь проект под Catel 3.3 советовать не надо). Чем можно заметь этот метод что бы код работал? Так же буду рад если посоветуете хороший пример реализации TabControl в рамках MVVM. Да в итернете много таких примеров, но все они (почти) подразумевают статическое количество TabItem. Мне же надо функционал как в примере. Заранее спасибо.
пример реализации TabControl в рамках MVVM- Если у вас есть список вьюмоделей для табов, то вам их надо только натянуть на контрол с табами. – tym32167 Apr 30 '20 at 15:05TabControlвкладки, это массив (который можно привязать), а также и контент у него можно легко изменить. Вот я например писал решение с вкладками на чистом MVVM. – EvgeniyZ Apr 30 '20 at 15:06