none
Button mit Optionen RRS feed

  • Frage

  • Hallo! Ich möchte einen Button haben, der mir erluabt eine Option zu wählen und diese auszuführen.Beispiel: ich möchte einen Vorgang anlegen, oder einen Vorgang anlegen und sofort ausführen. Die Voreinstellung des Button soll "Anlegen" lauten. Wenn der Benutzer auf den Pfiel des  Buttons (der Button hat einen kleinen Pfiel) klick, sieht er die Option "Anlegen und ausführen".Diese kann er dann auswählen. Jetzt hat der Button die Beschriftung "Anlegen und ausführen", es wurde aber noch kein Kommando ausgeführt. Erst wenn er jetzt auf den Button klickt, wir die Aktion ausgeführrt. Wie kann ich so etwas machen?

    Entschldigng für die langeBeschreibung, aber ich habe keine Ahnung wie man solche Funktionalität nennt. Danke für die Hilfe!

    Samstag, 22. September 2012 15:53

Alle Antworten

  • Hallo,

    du hast den Button, wenn der Benutzer ihn anklickt musst du überprüfen welchen "Zustand" er hat. Also Anlegen oder Ausführen. Das kannst du beispielsweise in einem bool oder einem Enum speichern.

    Wenn der Button den Zustand Anlegen hat, so zeigst du beispielsweise ein Fenster an, wo der Benutzer seine Optionen wählen kann.

    Wenn der Button den Zustand Ausführen hat, so führst du den verknüpften Befehl aus. Den Befehl müsstest du natürlich auch noch mit abspeichern.

    Anstatt für jeden Button eine eigene Variable anzulegen, könntest du dir auch ein Klasse anlegen, welche von Button abgeleitet ist und deine 2 zusätzlichen Eigenschaften hat:

    class CommandButton : Button
    {
        public string command { get; set; }
        public CommandButtonStates State { get; set; }
    }
    
    enum CommandButtonStates
    {
        Create,
        Execute,
    }

    PS: Andiese Eigenschaften kannst natürlich nicht Binden, dafür bräuchtest du DependencyProperties.



    Koopakiller - http://koopakiller.ko.ohost.de/

    Samstag, 22. September 2012 16:14
    Moderator
  • Hallo! Ich möchte einen Button ähnlich einer ComBox haben. Der Benutzer kann immer zwischen den Optionen wählen. Jede Option beinhaltet dann eigentlch einen Button, an den eine bestimmte Aktion gebunden ist. Erst wenn er "richtig" auf dieComboBox klickt,soll die entsprechende Aktion durchgeführt werden.

    Es soll aber kein zusätzliches Fenster aufgehen. Und nach Möglichkeit soll auch nicht untersucht werden, welche Beschriftung gerade aktiv ist, um ein Kommando auszuführen...

    Ich habe solch einen Button (mit einem Pfeil, der anedeutet, dass der Benutzer eine andere Aktion wählen kann), schon irgendwo gesehen. Leider weiss ich nicht mehr wie dieses Control heisst...

    Samstag, 22. September 2012 16:36
  • Mmh, dazu habe ich jetzt auch keine konkrete Idee, welches Control das sein könnte. Aber als Alternative: Ein Button, neben dem eine ComboBox, die so klein ist, das man nur den Pfeil sieht. Wenn der Benutzer ein Item aus der ComboBox auswählt, so wird es dem Button zugewiesen. Wenn der Button betätigt wird und noch keine Aktion festgelegt ist, so zeige einfach eine MessageBox an.

    Koopakiller - http://koopakiller.ko.ohost.de/

    Samstag, 22. September 2012 18:06
    Moderator
  • Hallo! Eigentlich sollte es so aussehen wie beim SplitButton aus dem WPF-Toolkit. Ich habe als Dropdowncontent ein Menu mit zwei Menuitems gemacht. Jedes dieser Items hat ein Command zugeordnet. Aber ich schaffe es nicht, die erste Option als voreingestellte Option zu machen. Mein Button ist also nach dem Aufruf der GUI immer leer, bis ich eine Auswahl getroffen habe...

    Vielleicht weiss jemand, wie ich die Voreinstellung für diesen Button machen kann.

    Danke für die Hilfe!

     
    Sonntag, 23. September 2012 11:37