2016-07-20 11 views
0

Ich versuche, die grundlegendste Form der Datenbindung in Xamarin-Formen zu erreichen, obwohl der Text, den ich in meinem Code einstelle, überhaupt nicht auf den Etiketten angezeigt wird. Alle Hinweise wären toll.Grunddatenbindung (Xamarin Forms)

CS

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Xamarin.Forms; 

namespace XamarinOuderportaal 
{ 
    public partial class LoginPage : ContentPage 
    { 
     public string UsernamePlaceHolder { get; set; } 
     public string PasswordPlaceHolder { get; set; } 

     public LoginPage() 
     { 
      this.UsernamePlaceHolder = "gebruikersnaam"; 
      this.PasswordPlaceHolder = "wachtwoord"; 
      InitializeComponent(); 
     } 
    } 
} 

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" 
      xmlns:local="clr-namespace:XamarinOuderportaal" 
      x:Class="XamarinOuderportaal.LoginPage"> 

    <StackLayout VerticalOptions="Center" HorizontalOptions="Fill" Spacing="20" Padding="20"> 
    <Entry Placeholder="This is the placeholder" HorizontalOptions="Fill" IsVisible="{Binding ShouldDisplayUrl}"/> 
    <Entry Placeholder="{Binding UsernamePlaceHolder}" HorizontalOptions="Fill"/> 
    <Entry Placeholder="{Binding PasswordPlaceHolder}" HorizontalOptions="Fill" IsPassword="true"/> 
    <Button Text="test 2" HorizontalOptions="Fill"/> 
    </StackLayout> 
</ContentPage> 

Antwort

0

Binding sucht auf der Instanz des Quellobjekts, so dass die Eigenschaften müssen nicht statisch sein.

Wenn Sie statische Bindung verwenden wollen, dann müssen Sie die statische Erweiterung verwenden:

<Entry Placeholder="{x:Static local:LoginPage.UsernamePlaceHolder}" HorizontalOptions="Fill"/> 

EDIT: Sie haben die Frage bearbeitet und entfernt die „statische“ Definition, so dass der Code muss jetzt arbeiten.

+0

ich dies ändern lassen. Ich habe gerade an dieser Stelle versucht. Ich würde bevorzugen, dass UserPlaceHolder und PasswordPlaceHolder nicht statisch sind. Danke für deine schnelle Antwort. –

+0

Aber hast du es versucht? Wenn die Eigenschaften nicht statisch sind, muss es funktionieren. – Gusman

+0

Wenn ich Ihre Zeile mit einer statischen Variable verwende oder was ich in meinem Code habe, wird der Text einfach nicht angezeigt. Wenn ich deine Zeile mit einer normalen Variable verwende, stürzt die App ab. –