[英]Xamarin MVVM Light ViewModelLocator setting BindingContext in xaml
我想通過xaml而不是后端代碼設置BindingContext。 目前我正在分配這樣的:
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
BindingContext = App.Locator.Main;
}
}
如何通過Xaml協助BindingContext? 我試過這樣的:
LoginPage.xaml
<?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中
<?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不存在的錯誤。
您應在頁眉上定義StaticResources
名稱空間。
這樣的事情:
<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}}"
在我的示例代碼中,我的StaticResources
是在上面的xmlnss:local
命名空間中定義的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.