2013-06-21 38 views
6
Bindung

Ich versuche, Feuer mit MvxCommand with CommandParameter, aber mit folgendem Problem konfrontiert: MyView.axml enthält:Mit MvxCommand Mit Command

<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 
      } 
     }); 
    } 
} 

Aber wenn ich überprüfen param Variable ist null.

Was mache ich falsch?

Antwort

8

Ihr Code funktioniert für mich auf dem Kopf meines Quellbaums.

Aber diese Funktionalität ist nur zwei Wochen alt.

Meine Vermutung ist, dass diese Funktion entweder nicht in die Version, mit der Sie arbeiten, oder in einen Fehler kam.

Können Sie Ihre Debug-Ablaufverfolgung für diese Bindung überprüfen? Gibt es dort Informationen?

  • Wenn die Spur legt nahe, dass CommandParameter ein unbekanntes Symbol ist, dann ist meine Vermutung, dass Sie sich die neueste Quelle müssen entweder bauen - oder für ein neues Release warten.
  • Wenn die Ablaufverfolgung etwas anderes vorschlägt, können Sie möglicherweise das Problem während des Setups beheben.

Eine Sache, ich weiß, wir fix war ein Werteumwandler Frage war, wo die Cirrious.MvvmCross.Binding.dll basierte ValueConverter ist nicht nur durch Setup.ValueConverterAssemblies überschrieben sein wurden die ValueConverter für dieses CommandParameter

+0

Du hast Recht erforderlich ist, um zu registrieren, Stuart ! Logbuch benötigt Watching: ** MvxBind: Warnung: 132,54 nicht Konverter Command Namen finden kann I/MvxBind (18314): 132,53 nicht Konverter Command genannt I/Mono-stdout (18314) finden kann: MvxBind : Warnung: 132,53 Konnte den benannten Konverter CommandParameter nicht finden ** Wann ist die letzte Veröffentlichung zu erwarten? –

+0

@Stuart Ich versuche das gleiche 'local: MvxBind =" Click OnRemoveClick, CommandParameter =. "' Ich bekomme das gleiche "." während der Ausführung des Befehls. irgendeine Idee bitte? – RIYAZ

+0

Entschuldigung - hört sich nicht so an, als würden Sie überhaupt "das Gleiche" wie diese Frage von 2013 bekommen. Kannst du dein Problem am besten in einer neuen Frage erklären? – Stuart

Verwandte Themen