Ich habe zwei Knöpfe - Knopf A & amp; Button B. Beide werden zunächst versteckt gehalten. Daten werden von einer OCollection der Observable Collection abgerufen.
Das versuche ich zu erreichen:
1) Anfangs sind beide Schaltflächen ausgeblendet. (Fertig)
2) Beim ersten Klick (durch Klicken auf ein Listenansichtselement) sollte Button A sichtbar gemacht werden. (Fertig)
3) Bei den restlichen Klicks (Klicken auf ein anderes Listenansichtselement als das, in dem Schaltfläche A sichtbar gehalten wurde) sollte Schaltfläche B sichtbar gemacht werden. Und die Sichtbarkeit der Schaltfläche A sollte nicht wieder in Collapsed geändert werden.
Hinweis: Jeder Listview-Eintrag muss nur einen Button enthalten (entweder Button A oder Button B).
OCollection wird als ItemSource einer ListView festgelegt. Jedes ListView-Objekt ist ein Raster mit einem Standardbild.
XAML:
%Vor%Um 3 zu erreichen, vergleiche ich das Tag des Gitters mit dem Inhalt der Schaltfläche. Es funktioniert nicht, weil die Logik falsch ist. Nun, wie kann das erreicht werden, ohne Code zu benutzen? Ich folge MVVM-Muster, also adios zu Code hinterher.
Eine Probe wäre nett, weil ich nur ein Anfänger bin.
Klasse:
%Vor%Ich denke, Sie können das CollectionChanged-Ereignis in Ihrem Ansichtsmodell abonnieren, dann die Sichtbarkeit Ihrer Schaltflächen an die bool-Eigenschaft binden und Ihr Ereignis behandeln, indem Sie den Wert Ihrer Eigenschaft ändern. Vergessen Sie den BooleanToVisibility-Konverter nicht. Wenn es nötig ist, kann ich Ihnen ein Beispiel für Code geben.
Hier ist es:
%Vor%Wenn Sie MVVM verwenden, hoffe ich, dass Sie wissen, was RaisePropertyChanged bedeutet, und Sie wissen, wie Sie die Sichtbarkeit der Schaltfläche an bool-Eigenschaft binden können. Lass es mich wissen, wenn du etwas nicht verstehen kannst.
Tags und Links c# mvvm xaml windows-phone-8.1 microsoft-metro