Я пишу UWP и использую шаблон 10.
Я создал ModalDialog, который должен показать пользователю некоторые данные, которые были только что рассчитаны в ViewModel.
Вот где я потерялся:
#1: ModalDialog нужны данные из моей ViewModel. # 2, ModalDialog должен вызывать 1+ метод (ы) в ViewModel в зависимости от того, какую кнопку нажимает пользователь.
Мой Shell.xaml.cs:
public sealed partial class Shell : Page
{
public static Shell Instance { get; set; }
public static HamburgerMenu HamburgerMenu => Instance.MyHamburgerMenu;
public Shell()
{
Instance = this;
InitializeComponent();
if (App.MobileService.CurrentUser == null)
LoginModal.IsModal = true;
}
public Shell(INavigationService navigationService) : this()
{
SetNavigationService(navigationService);
}
public void SetNavigationService(INavigationService navigationService)
{
MyHamburgerMenu.NavigationService = navigationService;
}
#region Login
private void LoginLoggedIn(object sender, EventArgs e)
{
MyHamburgerMenu.NavigationService.Navigate(typeof(Views.MainPage));
LoginModal.IsModal = false;
}
#endregion
}
}
Shell.xaml
<Controls:ModalDialog x:Name="ScoreModal" Grid.RowSpan="3"
CanBackButtonDismiss="False"
DisableBackButtonWhenModal="True">
<Controls:ModalDialog.ModalContent>
<myControls:QuizScorePart
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Controls:ModalDialog.ModalContent>
</Controls:ModalDialog>
Что я пробовал:
Я попытался просто поместить элемент управления для ModalDialog в представление, которое использует ViewwModel, с которым я хочу общаться, но это не работает; это представление живет внутри оболочки, что означает, что все, что находится под ModalDialog, НЕ отключено. Насколько я знаю, он ДОЛЖЕН быть в Shell.
Я попытался настроить метод в файле Shell.xaml.cs, который устанавливает IsModal для моего диалога в значение true/false; это работает, но не решает мою проблему взаимодействия с моей ViewModel.
Я потерялся. Спасибо всем за помощь.
Instance
. - person Peter Torr - MSFT   schedule 03.06.2016