Was ist der Ersatz für DataTrigger in Silverlight
Dies ist mein Szenario.
Habe ich 2 Eigenschaften. Typ und Zustand.
Typ ist ein Enum mit 3 Werten z.B. ball, Auto, Pfeil. Staat ist ein int, die akzeptieren würde, 3 Status-Werte zB., -1, 0, 1. Auch ich habe 9 Bilder, die für jede Status-Werte.
Gerne, wenn ich wählen Sie die Art, wie ball und mit dem Wert -1 ist, ich möchte Anzeige-Farbe Red ball.
Wenn ich wählen Sie die Art, wie Pfeil und Wert als 1, ich möchte Anzeige ein Pfeil nach oben. etc.,
Ich bin in der Lage, dies zu tun in WPF. Ich erstellte 3 DataTemplates mit einem leeren Bild. Dann benutze ich DataTrigger, um zu überprüfen und aktualisieren Sie das Besondere Bild für die ausgewählte StateValue.
Aber in silverlight wie kann ich dies tun. Ich weiß, ich habe es in die VSM. Aber, ich würde gerne wissen, einige details über dieses (oder) keine alternativen zur Verfügung.
InformationsquelleAutor der Frage Prince Ashitaka | 2010-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde nur verwenden einen Konverter, der nimmt Ihr Objekt mit 2 Eigenschaften und liefert ein Bild. Code wie in reinem XAML ist schmerzhaft und gehört einfach in C#.
InformationsquelleAutor der Antwort Judah Himango
Ich würde verwenden GoToState Verhaltensweisen, die mit DataTriggers in Silverlight. Ziemlich einfach in der Mischung:
Alle Ihre Logik für das, was treibt Sie an einem anderen Stand in Ihrem Blick-Modell.
Setzen Sie den Stand als ein enum.
Öffnen Sie die Registerkarte Zustände.
Erstellen Sie eine neue Status-Gruppe (wenn Sie nicht bereits eine haben).
Erstellen Sie Ihre Staaten.
Von der Registerkarte "Assets", wählen Sie "Verhalten" aus.
Ziehen Sie die GoToState Verhalten von der Registerkarte "Assets" und legen Sie es auf Ihrem root-visual-element.
Im Bedienfeld "Eigenschaften", klicken Sie auf die Schaltfläche "Neu" neben dem Triggertyp, und wählen Sie DataTrigger.
Denken Sie daran, dass enum auf Ihrem view-Modell? Stellen Sie den Trigger-Bindung an den Staat enum auf dem view-Modell.
Stellen Sie den Trigger auf den Wert des enum.
Legen Sie die StateName zu den soll-Zustand.
Mischung sollte nun generiert haben, alle von der VSM XAML-Code für Sie. Sobald Sie den Dreh raus zu bekommen Sie werden sehen, wie in einigen Szenarien müssen Sie nicht mal das enum auf dem view-Modell-Sie werden in der Lage sein zu fahren, den Staat völlig aus dem Blick.
InformationsquelleAutor der Antwort Mike Post
Erweitern Mike Post post hier ist der XAML-Code in Fall, dass Sie nicht haben Mischung.
Müssen Sie fügen Sie Verweise auf Microsoft.Ausdruck.Interaktionen und System.Windows.Die Interaktivität.
Dann in Ihrer Kontrolle, auf der gleichen Ebene wie der VisualStateManager setzen diese:
InformationsquelleAutor der Antwort Ray
Den blog-post "Ausdruck in Silverlight SDK–DataTrigger Beispiel" deckt es ziemlich gut. Hier ist ein Beispiel von dem, was er tut:
(Mit den beiden XML-namespace-Präfixe
i
undia
wird wie folgt definiert:)InformationsquelleAutor der Antwort Xcalibur37