Files
IPTVplayer/TV Player WPF/ViewModels/TVPlayerViewModel.cs
T
2024-01-21 13:18:48 +02:00

62 lines
1.5 KiB
C#

using System.Windows.Controls;
namespace TV_Player.ViewModels
{
public class TVPlayerViewModel
{
private readonly MainViewModel _mainViewModel;
public Action ButtonBackAction { get; set; }
private static TVPlayerViewModel? _instance;
public static TVPlayerViewModel Instance
{
get
{
if (_instance == null)
_instance = new TVPlayerViewModel();
return _instance;
}
}
public TVPlayerViewModel()
{
_mainViewModel = new MainViewModel();
var mainWindow = new MainWindow();
mainWindow.DataContext = _mainViewModel;
mainWindow.Show();
_instance = this;
ShowInitialScreen();
}
private void ShowInitialScreen()
{
var vm = new ProgramsGroupViewModel();
var control = new ProgramsGroupGrid();
control.DataContext = vm;
SetPageContext(control, vm);
}
public void TopPanelVisible(bool value, string title)
{
_mainViewModel.IsTopPanelVisible = value;
_mainViewModel.TopPanelTitle = title;
}
public void SetBackButtonAction(Action action)
{
_mainViewModel.ButtonBackAction = action;
}
public void SetPageContext(ContentControl control, object viewModel)
{
control.DataContext = viewModel;
_mainViewModel.Control = control;
}
}
}