Frage

Ich habe folgende Enumeration, die einen Zustand der Benutzeroberfläche darstellen (ich es verwenden aktivieren und deaktivieren UI-Elemente):

enum Mode 
{
 EDIT, RUN, REVIEW
}

Ich möchte Mode.EDIT auf Befehl in CommandParam weitergeben müssen:

  <Button Grid.Column="6" VerticalAlignment="Top Command="{Binding Path=ChangeMode}" 
CommandParameter="{StaticResource local:Mode.RUN}" />

Aber ich habe keine Ahnung, wie es zu erklären. Wie Sie in der Schaltfläche Erklärung sehen, ich versuche zu verwenden Static , aber es funktioniert nicht. Ich bin ganz neu in SL4 und C #, so nehme ich an, dass ich etwas verpasst haben.

War es hilfreich?

Lösung

Ich habe eine Lösung gefunden. Ich habe in meinem MyViewModel erstellt (mein Datacontext ) 3 öffentliche Attribute (vom Typ Mode) und sie im Konstruktor initialisiert werden (mit Werten EDIT RUN , REVIEW ). Als nächstes habe ich sie in XAML als eine normale Eigenschaft eines DataContext gebunden:

CommandParameter="{Binding Path=EDIT}

class MyViewModel
{  
  public Mode EDIT {set; get;}
  public Mode RUN {set; get;}
  public Mode REVIEW {set; get;}

  MyViewModel()
 { 
   EDIT = Mode.EDIT;
    ...
 }
} 

Andere Tipps

In WPF wir etwas tun können (möglicherweise nicht in SL) -

<Button Grid.Column="6" Command="{Binding Path=ChangeMode}"
CommandParameter="{x:Static local:Mode.RUN}" />

prüfen diese Frage, um weitere Informationen - Übergabe eines ENUM-Wert als Befehlsparameter von XAML

in Silverlight-x: Statische nicht funktioniert, so dass wir etw wie dies tun können:

<Button Command="{Binding Path=ChangeMode}">
    <Button.CommandParameter>
        <Mode>RUN</Mode>
    </Button.CommandParameter>
</Button>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top