Ich versuche, meine Masterdetailpage Detail von Viewmodel zu binden. Aber es funktioniert nicht.MasterDetailPage von ViewModel in Xamarin Forms binden
Hier ist mein Code im Blick:
<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:MasterDetailsSamp1"
x:Class="MasterDetailsSamp1.MainPage"
xmlns:vm="clr-namespace:MasterDetailsSamp1.ViewModels">
<MasterDetailPage.BindingContext>
<vm:MasterDetailsViewModel/>
</MasterDetailPage.BindingContext>
<MasterDetailPage.Master>
<ContentPage Title="Menu">
<StackLayout>
</StackLayout>
</ContentPage>
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
</NavigationPage>
</MasterDetailPage.Detail>
Hier ist mein Code in meinem Viewmodel
public MasterDetailsViewModel()
{
MasterDetailPage masterDetailPage = new MasterDetailPage
{
Detail = new NavigationPage((Page)Activator.CreateInstance(typeof(HomePage)))
};
}
Es funktioniert, wenn ich diese Codezeile setzen
Detail = new NavigationPage((Page)Activator.CreateInstance(typeof(HomePage)))
Hinter Code, aber ich möchte es vom Ansichtsmodell erreichen.
Bitte helfen. Vielen Dank im Voraus
Ja, ich weiß. Was ich meine ist, dass das von ViewModel aufgerufen werden sollte und nun ein Contentpage-Layout innerhalb der MasterDetailPage.Detail erstellt wird :) – jsonGPPD
Zum Schluss habe ich auch meine INotifyPropertyChanged in meinem ViewModel und alles funktioniert. Das Problem ist, wenn ich diesen Code "Detail = new NavigationPage ((Page) Activator.CreateInstance (typeof (HomePage))" in meinem Viewmodel, es funktioniert nicht. Aber wenn Sie das nach dem InitializeComponent() der Seite hinter den Code stellen, funktioniert es. – jsonGPPD
Ich habe einen Fehler. Es heißt "System.Reflection.TargetInvocationException:" –
jsonGPPD