2013-06-21 15 views
6

sto cercando con il fuoco MvxCommand with CommandParameter, ma di fronte alla seguente problema: MyView.axml contiene:Utilizzando MvxCommand Con CommandParameter vincolante

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button1" 
     local:MvxBind="Click MyCommand, CommandParameter=foo" /> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button2" 
     local:MvxBind="Click MyCommand, CommandParameter=bar" /> 
</LinearLayout> 

MyViewModel.cs:

public class MyViewModel : MvxViewModel 
{ 
    public ICommand MyCommand { get; private set; } 

    public MyViewModel() 
    {         // param is null 
     MyCommand = new MvxCommand<string>(param => 
     { 
      if (param == "foo")    
      { 
      // do something 
      } 
      else if (param == "bar") 
      { 
      // do something else 
      } 
     }); 
    } 
} 

Ma quando controllo parametro variabile è null.

Cosa sto facendo male?

risposta

8

Il codice funziona per me sul capo dell'albero dei sorgenti.

Ma questa funzionalità ha solo due settimane di vita.

La mia ipotesi è che questa funzione non sia stata inclusa nella versione con cui si sta lavorando o che ci sia un bug in esso.

È possibile controllare la traccia di debug per questa associazione? C'è qualche informazione lì?

  • Se la traccia suggerisce che CommandParameter è un simbolo sconosciuto allora la mia ipotesi è che è necessario sia costruire l'ultima fonte da soli - o aspettare una nuova release.
  • Se la traccia suggerisce qualcos'altro, potrebbe essere possibile correggere il problema durante l'installazione.

Una cosa che so abbiamo correzione è stata una questione di convertitore di valori in cui i Cirrious.MvvmCross.Binding.dll basate ValueConverter 's non venivano semplicemente ridefinendo Setup.ValueConverterAssemblies per registrare il ValueConverter necessaria per questo CommandParameter

+0

Hai ragione, Stuart ! di Log watching necessaria: ** MvxBind: Attenzione: 132,54 Impossibile trovare il nome del convertitore CommandParameter I/MvxBind (18314): 132,53 non riusciva a trovare il nome del convertitore CommandParameter I/mono-stdout (18314): MvxBind : Avviso: 132,53 Impossibile trovare il convertitore denominato CommandParameter ** Quando prevedere la versione recente? –

+0

@Stuart Sto provando lo stesso 'local: MvxBind =" Fai clic su OnRemoveClick, CommandParameter =. "" Sto diventando lo stesso "." durante l'esecuzione del comando. qualche idea per favore? – RIYAZ

+0

scusa: non sembra che tu stia ricevendo "lo stesso" di questa domanda del 2013. potrebbe essere la migliore spiegazione del tuo problema per intero in una nuova domanda? – Stuart