2016-08-19 9 views
0

バックエンドコードの代わりにxamlを使用してBindingContextを設定したいと思います。現在、私は次のように割り当てています。Xamarin MVVM Light ViewModelLocator xamlでBindingContextを設定する

public partial class MainPage : ContentPage 
{ 
    public MainPage() 
    { 
     InitializeComponent(); 
     BindingContext = App.Locator.Main; 
    } 
} 

Xamlを使用してBindingContextを取得するにはどうすればよいですか?

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      x:Class="Codesign.DtpMobilePortable.Views.LoginPage" BindingContext="{Binding LoginPage, Source={StaticResource ViewModelLocator}}"> 
    <StackLayout Spacing="20" Padding="50" VerticalOptions="Center"> 

    <Entry x:Name = "EntryUsername" Text="{Binding EntryUsernameText}" Placeholder = "Username"/> 
    <Entry x:Name = "EntryPassword" Text="{Binding EntryPasswordText}" Placeholder = "Password" IsPassword = "true" /> 

    <Button x:Name = "ButtonLogin" 
         Text = "{Binding LoginButtonText}" 
         TextColor = "White" 
         BackgroundColor = "{Binding LoginButtonColor}" Command="{Binding LoginCommand}"/>  
    </StackLayout> 
</ContentPage> 

App.xamlに

LoginPage.xaml

<?xml version="1.0" encoding="utf-8" ?> 
<Application xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      xmlns:viewModels="clr-namespace:Codesign.DtpMobilePortable.ViewModels;assembly=Codesign.DtpMobilePortable" 
      x:Class="Codesign.DtpMobilePortable.Views.App"> 
<Application.Resources> 
    <viewModels:ViewModelLocator 
     x:Key="ViewModelLocator" /> 
</Application.Resources> 
</Application> 

をしかし、私はStaticResourceに関するエラーが存在しません取得:私はこのように試してみました。

答えて

0

あなたはページヘッダにStaticResourcesという名前空間を定義しなければなりません。そのような

気にいら:私のサンプルコードで私のStaticResourcesは、上記xmlnss:local名前空間に定義されてい

<ContentView xmlns="http://xamarin.com/schemas/2014/forms" 
     xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
     xmlns:local="clr-namespace:Codesign.DtpMobilePortable;assembly=Codesign.DtpMobilePortable" 
     xmlns:Vm="clr-namespace:Codesign.DtpMobilePortable.ViewModel;assembly=Codesign.DtpMobilePortable" 
     x:Class="Codesign.DtpMobilePortable.Views.LoginPage" 
     BindingContext="{Binding LoginPage, Source={StaticResource ViewModelLocator}}" 

関連する問題