0

Я нашел хорошую реализацию 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:05
  • 2
    Простите, а какой смысл городить тут велосипеды, если в TabControl вкладки, это массив (который можно привязать), а также и контент у него можно легко изменить. Вот я например писал решение с вкладками на чистом MVVM. – EvgeniyZ Apr 30 '20 at 15:06
  • 1
    Опять этот никчемный катель. Люди под видом изучения MVVM зачем то изучают этот катель, и потом думают что MVVM это и есть Catel. Ну это так, мысли в слух. – Bulson Apr 30 '20 at 15:27
  • 1
    @Bulson Только PRISM, только хардкор! :) – tym32167 Apr 30 '20 at 16:30
  • @tym32167 PRISM - это вещь! Года 3 назад я даже пытался его изучать..., но тяжело давался, и самое главное, все только усложнялось, а не становилось проще с этим монстром, потому забил на него. – Bulson Apr 30 '20 at 16:59
  • @Bulson я осилил со второго подхода и настолько увлекло, что переписал на него весь pet проект :) – tym32167 Apr 30 '20 at 17:00
  • @tym32167 круто, чё – Bulson Apr 30 '20 at 17:01

0 Answers0