WPF-toggle panel Sichtbarkeit
Habe ich zwei Platten, nur sollte man sichtbar an der gleichen Zeit. Ich zwischen diesen wechseln, indem Sie auf eine Schaltfläche, eine auf jeder Tafel.
Gibt es einen schönen Weg, dies zu tun in der xaml-ohne codebehind oder viewmodel?
- Die Taste auf dem Bedienfeld, X sollte das panel X unsichtbar, richtig?
- das stimmt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es eigentlich möglich, allerdings ziemlich schwierig.
Mein Beispiel funktioniert ohne code-behind -, tatsächlich ohne jeden Wert-Wandler, auch.
Hier ist der code: (jetzt die vereinfachte version, Dank @H. B. für die Ideen)
Die Idee, mit
ToggleButtons
gestohlen einige andere Frage, bei SODen Vorschlag mit einem "tabcontrol" ist gut. Ich fand einige Codes, welche Stile einem TabControl nur zeigen, das TabItem Inhalt
Wenn Sie ToggleButtons, dann konnte Sie binden die Sichtbarkeit von Leiste 1 auf die IsChecked-Zustand der Taste 2, und die Sichtbarkeit von Panel 2 auf die IsChecked-Zustand der Schaltfläche 1. Stellen Sie die Bidirektionale Bindungen, und verwenden Sie die integrierte BooleanToVisibility Konverter.
Warum nicht das TabControl-Steuerelement für diese?
Ein wenig Arbeit, um mit einer
IValueConverter
sollte den trick tun. Sicher, es ist nicht plain old XAML, aber es ist nicht in der codebehind und können wiederverwendet werden.Sehe ich so etwas wie verbindliche X die Sichtbarkeit der Y-Sichtbarkeit und fügen Sie einen Konverter, um es :
Glaube ich nicht. Du brauchst viewmodel oder codebehind. Verwenden Sie einen Stil mit einem DataTrigger und binden den Wert der visibility-Eigenschaft an eine Eigenschaft im viewmodel, die Vermeidung der Verwendung von codebehind.