2013-04-08 60 views

回答

7

假設你有一個像這樣

public enum MyEnum 
{ 
    Value1, 
    Value2 
} 
public class MyViewModel : MvxViewModel 
{ 
    public MyEnum MyEnumProp { get... set...} 
} 

假設你想顯示Azure的顏色值1和黑色的值2視圖模型,你可以在你實現這個轉換器的核心工程。

public class MyEnumToColorConverter: MvxValueConverter<MyEnum, object> 
{ 
    protected override object Convert (Multiplier value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     MvxColor mvxColor = null; 
     switch (value) { 
     case MyEnum.Value1: 
      mvxColor = new MvxColor(240,255,255); 
      break; 
     case MyEnum.Value2: 
      mvxColor = new MvxColor(0,0,0); 
      break; 
     default: 
      mvxColor = new MvxColor(0,0,0); 
      break; 
     } 

     var nativeColorConv = Mvx.Resolve<IMvxNativeColor>(); 

     return nativeColorConv.ToNative (mvxColor); 
    } 
} 

訣竅是打電話給Mvx.Resolve<IMvxNativeColor>()。在您的UI項目中,如果您已經加載了正確的Color插件,您將自動爲您的平臺獲得正確的Color實施。

請記住將此行添加到您的Setup.cs(如果添加了顏色插件Nuget包,它將自動將其添加到Bootstrap文件夾中,則不需要)。

Cirrious.MvvmCross.Plugins.Color.PluginLoader.Instance.EnsureLoaded();