Код: Выделить всё
// ... Code ...
// ... Code ...
Код: Выделить всё
Код: Выделить всё
public partial class MainWindowViewModel : ViewModelBase {
private int _currentTabIndex = 0;
public int CurrentTabIndex
{
get => _currentTabIndex;
set
{
CurrentTabHeader = TabIndexToString(value);
SetProperty(ref _currentTabIndex, value);
}
}
private string TabIndexToString(int index)
{
return index switch
{
0 => "Home",
1 => "Manager",
2 => "Settings",
3 => "Add Package",
_ => throw new ArgumentOutOfRangeException(nameof(index), "Invalid tab index")
};
}
}
Код: Выделить всё
public partial class ManagerWindowViewModel : MainWindowViewModel
{
public void OpenNewPackageWindow()
{
// Logic to open a new package window
Console.WriteLine("Opening new package window...");
CurrentTabIndex = 3;
}
}
Код: Выделить всё
public partial class App : Application {
public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
// Avoid duplicate validations from both Avalonia and the CommunityToolkit.
// More info: https://docs.avaloniaui.net/docs/guides/development-guides/data-validation#manage-validationplugins
DisableAvaloniaDataAnnotationValidation();
desktop.MainWindow = new MainWindow
{
DataContext = new MainWindowViewModel(),
};
}
base.OnFrameworkInitializationCompleted();
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... another-vm
Мобильная версия