Xamarin.Forms указание BindingContext через XAML

216
20 октября 2018, 16:20

Есть одна ContentPage и две ViewModel. Для всей страницы целиком указан BindingContext к ViewModel1, но часть элементов внутри некоторой StackLayout нужно забиндить к ViewModel2. Я пытаюсь прописать <StackLayout BindingContext="... и вот тут у меня возникает затык. Всё, что я бы ни старался там нафантазировать - всё приводит к выбросу исключения System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.

Reference, x:Reference, Type, x:Type, Static, x:Static и т.п.

  1. Что всё это значит в принципе, что когда прописывается и где об этом можно подробно прочитать?
  2. Как мне правильно прописать BindingContext исходя из условия задачи?

P.S. ContentPage находится НЕ в том же пространстве имён, что ViewModels

P.S.S. ViewModel1 и ViewModel2 по отношению друг к другу лежат в одном пространстве имён.

P.S.S.S. Заголовочная часть страницы выглядит так:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:ViewModels="clr-namespace:MobApp.ViewModels"
         xmlns:themes="clr-namespace:MobApp.Themes"
         xmlns:flv="clr-namespace:DLToolkit.Forms.Controls;assembly=DLToolkit.Forms.Controls.FlowListView"
         x:Class="MobApp.Page"
         BackgroundColor="#ffffff"
         Title="Просто страница">
Answer 1

Изучите: https://docs.microsoft.com/ru-ru/xamarin/xamarin-forms/xaml/xaml-basics/data-bindings-to-mvvm Путь к классам viewmodel1 и viewmodel2 вы уже определили

xmlns:ViewModels="clr-namespace:MobApp.ViewModels"

А привязка к любому элементу добавляется следующим образом:

        <StackLayout.BindingContext>
            <ViewModels:**viewmodel2** />
        </StackLayout.BindingContext>

При создании экземпляра страницы будет создаваться экземпляр класса viewmodel2

READ ALSO
Путь к файлу через app.config

Путь к файлу через app.config

Знаю как в си шарпе указать путь к файлам, но это будет работать только на моем пк, при переносе программы на другой пк путь будет другойКак...

311
C# WPF закрыть ShowDialog

C# WPF закрыть ShowDialog

Запускаю окно асинхронно в другом потоке

361
Захват, зум и отображение части окна приложения

Захват, зум и отображение части окна приложения

Есть программа оверлей, в которой должно отображаться увеличенное изображение части окна другого приложенияВ какую сторону смотреть, что...

278
C#. не получает cookies

C#. не получает cookies

Делаю авторизациюПосле ввода логина и пароля со страницы логина отправляются cookies и на странице user принимаются и проверяются

228