У меня есть несколько просадок, которые определены на моем MainWindow. Я хочу открыть их из представления моего приложения WPF.Как вызвать метод MainWindow из View с помощью Caliburn Micro?
Когда я пытаюсь связать свою команду, я не получаю никаких ошибок, но вылет не открывается. Когда я вызываю метод непосредственно в MainWindow, открывается всплывающее окно.
Способ по MainWindow.xaml.cs
public ICommand openFlyoutHomeCommand { get; private set; }
public void openFlyoutHome()
{
FlyoutHomePlayers.IsOpen = true;
}
И связывании с точки зрения, которая показана в MainWindow:
<Button Grid.Row="0" Grid.Column="1" Margin="10 30 10 10" Content="Open Flyout" Command="{Binding openFlyoutHome}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"></Button>
вам было бы лучше использовать IEventAggregator для отправки сообщения в mainwindow, чтобы открыть всплывающее окно. Это будет обрабатываться в viewmodel основного окна. ссылка 'IHandle' наследуется на вашей модели просмотра и подписывается на сообщения о событиях –
mvermef
Если вы используете Caliburn.Micro MainWindow не должны быть в вашем проекте. Главное ваше представление должно быть ShellView, и ваша «модель просмотра» должна быть ShellViewModel – C1rdec