tutorial c# windows-phone-7 xamarin.ios xamarin.android mvvmcross

c# - tutorial - MvvmCross vnext: monodroid binding Dictionary clave similar a wp7



mvvmcross tutorial (1)

Cuando cambio MainMenuViewModel en Tutorial.Core para usar un diccionario como este:

`public Dictionary Items {get; conjunto; } public ICommand ShowItemCommand {get {return new MvxRelayCommand> ((type) => DoShowItem (type.Value)); }}

public void DoShowItem(Type itemType) { this.RequestNavigate(itemType); } public MainMenuViewModel() { Items = new Dictionary<string, Type>() { {"SimpleTextProperty", typeof(Lessons.SimpleTextPropertyViewModel)}, {"PullToRefresh", typeof(Lessons.PullToRefreshViewModel)}, {"Tip", typeof(Lessons.TipViewModel)}, {"Composite",typeof(Lessons.CompositeViewModel)}, {"Location",typeof(Lessons.LocationViewModel)} }; }`

La muestra funciona como se esperaba en wp7, pero con monodroid recibo un error :: "MvxBind: Error: 2,71 Problema visto durante la ejecución de enlace de Items a ItemsSource - problema ArgumentException: error al convertir parámetros" porque creo KeyValuePair Key la propiedad causa el problema en:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:local="http://schemas.android.com/apk/res/Tutorial.UI.Droid" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="12dp" android:orientation="vertical"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="View Model:" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" local:MvxBind="{''Text'':{''Path'':''Key''}}" /> </LinearLayout>

Gracias de antemano por tu ayuda.


El problema es que la vista mvxbindablelist espera un objeto que admita la interfaz IList, por lo que actualmente no se puede vincular a un diccionario.

Esto es lo que nos dice ''ArgumentException: no se pudieron convertir los parámetros''.

Si desea utilizar un diccionario, puede aplicar un convertidor que asigne el diccionario a una lista ()

Si crees que esta es una característica que falta en mvx, si crees que las listas deben vincularse a cualquier ienumerable (o tal vez a cualquier recopilación), registra este problema en github.

Actualización : esto se ha llevado a cabo en https://github.com/slodge/MvvmCross/issues/38 y ahora el comportamiento ha cambiado.