2017-03-12 56 views
0

嗯,我試圖做一個自定義視圖,就像用戶縮略圖視圖。 視圖(ViewCell?)顯示UserModel(我的自定義模型)的縮略圖+用戶名。自定義視圖Xamarin自定義模型(BindableProperty)

這是UploaderCell.xaml.cs

public static readonly BindableProperty UploaderProperty = 
     BindableProperty.Create(
      propertyName: "Uploader", 
      returnType: typeof(UserModel), 
      declaringType: typeof(UploaderCell) 
     ); 

    public UserModel Uploader 
    { 
     get 
     { return GetValue(UploaderProperty) as UserModel; } 
     set 
     { SetValue(UploaderProperty, value); } 
    } 

的代碼,這是使用像在一些地方比<UploaderCell Uploader="{Binding post.uploader}"/>

和我得到的錯誤是System.InvalidCastException Class 這不是我的錯誤實際傳遞錯誤的數據。

所以我的問題是,是不可能使BindableProperties與非基本類型(字符串,詮釋,電子..)?

回答

1

是的,它可以使用複雜的類型,並且我一直都在做。你發佈的代碼看起來是正確的。

我會檢查你的視圖模型中的代碼,看看你實際上綁定到那個值,因爲這可能是你的錯誤的原因。如果你綁定了錯誤的類型,那麼可能會導致錯誤。

+0

有調試約束力的任何可能的方式? +我沒有使用MVVM只是xaml和xaml.cs這樣的一些(或我的小姐理解)會是一個問題? – uzu

+0

或..你能給我任何包含這些概念的示例項目嗎? – uzu

0

確保您的數據模型有

{ get; set; } 

這個..

啊..

+0

這樣做 - 如果你的視圖模型(我知道你說你不使用MVVM,但真的是你 - 你綁定的東西是所有意圖和目的的視圖模型)不使用公共屬性的值,你不能綁定到他們 – JimBobBennett