Последние несколько дней я пытался создать новую модель представления и отобразить ее в основном виде оболочки моего приложения. В настоящее время я смог загрузить страницу, используя ActivateItemAsync
Однако это занимает всю страницу. Я в настоящее время хочу, чтобы это сидело выше activeitem. Вот представление для страницы:
<!-- Notification Bar -->
<UserControl
x:Name="NotificationMessage"
Visibility="{Binding IsNotificationMessageVisible, Converter={StaticResource BooleanToVisibilityConverter}, FallbackValue=collapsed}"
Grid.Row="0" Grid.Column="1"
/>
<!-- Main Frame -->
<Frame
x:Name="ActiveItem"
NavigationUIVisibility="Hidden"
Padding="10"
Grid.Row="1"
Grid.Column="1"
/>
Как вы можете видеть сверху, у меня есть две строки, одна из которых представляет собой панель уведомлений, которая появится, если у пользователя есть уведомление. В настоящее время я хочу, чтобы это было скрыто, только если доступно уведомление. Однако я не могу сделать так, чтобы уведомление отображалось на странице. При попытке получить уведомление о переполнении стека из-за его зацикливания. Ниже приведен код ViewModel для представленного выше представления:
private _notificationtMessage;
public NotificationViewModel NotificationMessage
{
get {
_notificationtMessage= new NotificationViewModel ();
return _notificationtMessage;
}
set {
_notificationtMessage= value;
NotifyOfPropertyChange(() => NotificationMessage);
NotifyOfPropertyChange(() => IsNotificationVisible);
}
}
public bool IsNotificationVisible
{
get
{
bool b = false;
if(Database.GetNotification().Title.Length !=0)
{
b = true;
this.NotificationMessage = new NotificationViewModel ();
}
return b;
}
}
Мой главный вопрос - как мне создать новый экземпляр этой модели в моей ShellViewModel и отобразить его в моем ShellView