2013-11-24 54 views
2

我很難得到一個基本的MvvmCross Android示例,其中RelativeLayout的BackgroundColor綁定到ViewModel。MvvmCross Android BackgroundColor不綁定到ViewModel

該應用程序運行,出現一些文本,並且我期待我的背景變成黃色。但是,背景顏色保持不變。

我已經在我的Core和Droid項目以及MvvmCross-Color Plugin中包含了熱金槍魚啓動包。我的Droid的項目被自動賦予ColorPluginBootstrap.cs

佈局

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:local="http://schemas.android.com/apk/res-auto" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    local:MvxBind="BackgroundColor NativeColor(BackgroundColor)"> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:textSize="20sp" 
      android:gravity="center" 
      android:text="Text to make sure the layout inflates" /> 
</RelativeLayout> 

視圖模型

public class ViewModel : MvxViewModel 
{ 
    RGBAColorConverter _rgbaConverter; 
    public ViewModel() 
    { 
     var color = "#ffedff00"; 
     _rgbaConverter = new RGBAColorConverter(); 
     BackgroundColor = _rgbaConverter.Convert(color); 
    } 

    private MvxColor _backgroundColor; 
    public MvxColor BackgroundColor 
    { 
     get { return _backgroundColor; } 
     set 
     { 
      _backgroundColor = value; 
      RaisePropertyChanged(() => BackgroundColor); 
     } 
    } 
} 

綁定的工作 - 我已經試過這樣做被串做簡單的文字結合其他視圖模型屬性。所有這些似乎都很好。

我已經在BackgroundColor ViewModel屬性的getter上放置了調試斷點,我可以像預期的那樣看到MvxColor。

我在顏色綁定場景中缺少什麼?

  • 我沒有做任何額外的東西在Setup.cs
  • 我還沒有在我的Droid項目創建的任何其他佈線補課
  • 我還沒有創建任何Android特有的顏色轉換器實現
+0

NativeColor(BackgroundColor),這是你自己的MvxConverter還是你用過的任何插件?如果是的話,請提及插件 –

回答

4

我剛剛寫了一個測試應用程序,它似乎爲我工作 - 使用3.0.14 nuget二進制文件。

此外,ValueConverters測試應用程序似乎工作正常 - https://github.com/MvvmCross/MvvmCross-Tutorials/tree/master/ValueConversion

看你的樣品,我能想到的唯一的事情就是也許你只是在測試的透明顏色(RGBA#ffedff00具有阿爾法= 0)

如果不是這樣,你可以發佈更多 - 也許是一個完整的樣本?

+0

的鏈接** Pro-tip **:RGBA!= ARGB :) 我一直在Android中低頭,我的大腦轉換了兩者。一旦我將Alpha通道的位置更換爲它應該的位置(來自ARGB - > RGBA),一切都很順利。謝謝Stuart。 – chrisriesgo