Wie kann ich eine Schaltfläche in listviewitem an einen Befehl in ViewModel in Winrt binden

8

Ich habe eine NavigateToAccountsCommand RelayCommand-Eigenschaft im ViewModel. Wenn ich dieselbe an eine Schaltfläche auf der Seite außerhalb der ListView binde, funktioniert die Befehlsbindung. Sobald ich dies jedoch in eine DataTemplate von ListView verschiebe, funktioniert es nicht.

Ich habe versucht, die Bindung von NavigateToAccountsCommand zu DataContext.NavigateToAccountsCommand noch nicht zu ändern.

Schätzen Sie Ihre Hilfe ...

%Vor%     
Drunkenelf 28.10.2013, 22:45
quelle

3 Antworten

12

Wenn Sie sich in DataTemplate von ListView befinden, ist Ihr Datenkontext das aktuelle Element des ItemsSource der ListView. Da es in Ihrem NavigateToAccountsCommand für jedes einzelne Element keine Eigenschaft namens " AllAcounts " gibt, funktioniert die Bindung nicht.

Um das zu beheben, müssen Sie etwas von außerhalb von DataTemplate ; folgendes sollte funktionieren. Er ändert die Bindung so, dass er auf die DataContext des Root-Grids verweist, auf die die Eigenschaft NavigateToAccountsCommand zugreifen soll. Um auf das Raster zu verweisen, müssen Sie das Attribut Name hinzufügen und dann ElementName binding verwenden.

%Vor%     
loopedcode 28.10.2013, 23:20
quelle
3

Sie können

verwenden %Vor%     
Dhaval Patel 29.10.2013 06:21
quelle
-1

Ich hatte ein ähnliches Problem (Win RT), das ich mit nur:

gelöst habe %Vor%

und dann in der Page-Klasse:

%Vor%     
Stefan Michev 01.11.2014 02:37
quelle

Tags und Links