Как получить доступ к MainWindow viewmodel из Page

118
30 июня 2019, 16:50

Пытаюсь разобраться с WPF. В моем примере мне нужно получить доступ к MainWindow viewmodel из Page в XAML. У меня есть одно решение для реализации этого. Но я хочу узнать еще способы. Особенно как сделать это из XAML.

MainWindow.xaml

<Window x:Class="FunAnkiWPF.MainWindow"
...omitted for brevity
Height="450" Width="800"
DataContext="{Binding ViewModel, RelativeSource={RelativeSource 
Self}}">

MainWindow.xaml.cs

public partial class MainWindow : Window
{        
    public MainWindowViewModel ViewModel { get; set; }
    public MainWindow()
    {
        ViewModel = new MainWindowViewModel(this);
        InitializeComponent();            
    }     
}

StartPage.xaml (обычная страница)

StartPage.xaml.cs (Решение которое работает)

public partial class StartPage : Page
{
    public StartPage()
    {
       InitializeComponent();
       DataContext = App.Current.MainWindow.DataContext;
    } 
}

Как получить прямой доступ к MainWindow ViewModel (в XAML и в codebehind)? Как получить доступ к MainWindow.DataContext в XAML (как в моем CodeBehind)?

READ ALSO
WPF. MVVM. Как сохранить состояние Checked массива toggleButton

WPF. MVVM. Как сохранить состояние Checked массива toggleButton

Есть коллекция radiobutton, по нажатии на каждую такую кнопку формируется коллекция togglebuttonДанные для формирования и того и другого списка берутся...

147
Screenshot в консольном приложении

Screenshot в консольном приложении

Нашёл только ответ, как сделать в приложении с Windows Forms, вот этот код:

126
Не работает концентратор SignaR

Не работает концентратор SignaR

Концентратор передается в IhostedService сервис через servicesAddSingleton:

97
Передача массива по AJAX на PHP backend

Передача массива по AJAX на PHP backend

Использую AJAX и передаю массив с даннымиСам массив полностью рабочий (в плане, через js выводится, всё ок, но по ajax в php не передается, точнее...

146