Ниже приведен код MainWindowViewModel.cs:
using System;
using System.Collections.ObjectModel;
using System.Linq;
using CommunityToolkit.Mvvm.ComponentModel;
using Neuroflow.Views;
using Neuroflow.Views.VisualizationViews;
using Avalonia.Controls;
using CommunityToolkit.Mvvm.Input;
using Neuroflow.Services;
namespace Neuroflow.ViewModels;
public partial class MainWindowViewModel : ViewModelBase
{
[ObservableProperty] private TabItem? _currentOpenedView;
[ObservableProperty] private ObservableCollection _openedViews;
public MainWindowViewModel()
{
OpenedViews = new ObservableCollection
{
new TabItem("Visualization", new Visualization()),
new TabItem("Linear Regression", new LinearRegression()),
new TabItem("Logistic Regression", new LogisticRegression())
};
}
}
public partial class TabItem : ViewModelBase
{
[ObservableProperty] private string _header;
[ObservableProperty] private UserControl _content;
public TabItem(string title, UserControl view)
{
Header = title;
Content = view ?? throw new ArgumentNullException(nameof(view));
}
}
MainWindow.axaml:
Код правильно отображает заголовок, однако не отображает контент должным образом (работает нормально, когда я все жестко кодирую), поэтому проблема, похоже, возникает из кода шаблона. также попробовал следующее (тоже не работает)
Также попробовал следующее:
Замена CurrentOpenedView.Content на Content не работает (Intellisence заранее выдает красные линии)
Я получаю следующую ошибку:
0>MainWindow.axaml(68,37): Error AVLN2000 Avalonia: Unable to resolve property or method of name 'CurrentOpenedView' on type 'XamlX.TypeSystem.XamlPseudoType'. Line 68, position 37.
0>------- Finished building project: Neuroflow. Succeeded: False. Errors: 1. Warnings: 4
Подробнее здесь: https://stackoverflow.com/questions/790 ... s-expected