2017-01-31 8 views
4

Ниже приводится определение моей страницы в Xamarin формах с Prism MVVM рамкой: картыКак получить доступ к экземпляру вида модели в кодогенераторе XAML страницах позади (Xamarin формах) в Prism

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms" 
      prism:ViewModelLocator.AutowireViewModel="True" 
      xmlns:maps="clr-namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps" 
      x:Class="MyProject.UI.Modules.Views.MapPage"> 

..... 
</ContentPage> 

К сожалению Xamarin не являются MVVM уже, когда дело доходит до привязки контактов и т. д. Поэтому мне нужно внести некоторые изменения кода в код C# за страницей. Как я могу получить доступ к экземпляру ViewModel, взаимодействующему с этой страницей в коде?

ответ

5

Вы всегда можете отслеживать изменения свойств в ViewModel и использовать значения для обновления карты. Чтобы ухватить в ViewModel, просто бросил ваш BindingContext

Пример: ((MainPageViewModel)this.BindingContext)

Пример ссылки: https://github.com/PrismLibrary/Prism-Samples-Forms/blob/master/ContosoCookbook/ContosoCookbook/ContosoCookbook/Views/MainPage.xaml.cs#L16