2017-03-14 106 views
0

我試圖通過創建一個對象並綁定該對象來使用MvvmHelpers綁定一些數據。使用Mvvm Helpers進行數據綁定

https://github.com/jamesmontemagno/mvvm-helpers

在我的模型,我有幾個數據綁定,所以我只是做了什麼我工作的快速模板。

如果我將NameModel內部的內容移動到NameViewModel,它確實有效,但我嘗試分離我的數據。

型號:

public class NameModel : BaseViewModel 
    { 
     string name; 

     public string Name 
     { 
      get { return name; } 
      set { SetProperty(ref name, value); } 
     } 
    } 

視圖模型:

public class NameViewModel : BaseViewModel 
    { 
     NameModel nameModel; 

     public NameViewModel() 
     { 

      nameModel = new NameModel { name="Jon Doe" }; 
     } 
    } 

Page.xaml.cs

public partial class NamePage : ContentPage 
    { 
     public NamePage() 
     { 
      InitializeComponent(); 
      BindingContext = new NameViewModel(); 
     } 
    } 

Page.xaml:

<ContentPage 
    xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    x:Class="NameProj.NamePage"> 
    <StackLayout 
     Orientation="Vertical" > 
     <Label 
      HorizontalOptions="FillAndExpand" 
      VerticalOptions="FillAndExpand" 
      BackgroundColor="Transparent" 
      Text={Binding Name}/> 
    </StackLayout> 
</ContentPage> 

回答

1

您是否嘗試將其更改爲nameModel.Name

<Label 
     HorizontalOptions="FillAndExpand" 
     VerticalOptions="FillAndExpand" 
     BackgroundColor="Transparent" 
     Text="{Binding nameModel.Name}"/> 

希望它有幫助!

+0

我試過,之前並沒有工作。 – MartDavious

+0

這個答案加上Alessandro Caliaro的說法是正確的。 – MartDavious

1
NameModel nameModel; 

我想應該是公共

public NameModel nameModel {get; set;} 

,是的,我認爲@mindOfAi是正確的

+0

哈哈當然!在我閱讀你的回答之前,我想到了這一點。我必須公開才能訪問它! – MartDavious

+0

是的,那也是!哈哈哈。 – mindOfAi