Mein Problem:mvvm Licht UWP-Index von listItem Wenn Anstecknadel ListItem gedrückt
ich ein Listview bekam, die eine ItemTemplate hat; enthält ein DataTemplate mit einigen AppBarButtons
drin. Jetzt, wenn der Benutzer einen der Buttons in der ListView drückt, wird das ListItem, das die Schaltfläche enthält, nicht hervorgehoben. Dieses Problem führt auch zu dem Problem, dass ich nicht weiß, wie der Index des Listenelements, das die Schaltfläche enthält, die der Benutzer geklickt hat, erhalten.
ListItem:
Der Code in Mainpage.xaml
:
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<!-- Simplified, Left out other AppBarButtons -->
<AppBarButton Foreground="White" VerticalAlignment="Center"
Label="Navigate" Icon="Map" >
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="Tapped">
<core:InvokeCommandAction Command="{Binding Main.OpenMapCommand, Mode=OneWay, Source={StaticResource Locator}}"></core:InvokeCommandAction>
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</AppBarButton>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
Der Befehl:
public RelayCommand OpenMapCommand
{
get
{
return _openMapCommand
?? (_openPaneCommand = new RelayCommand(
() =>
{
Debug.WriteLine("Opening map");
// Center on New York City
var uriNewYork = new Uri(@"bingmaps:?cp=40.726966~-74.006076");
// Launch the Windows Maps app
var launcherOptions = new Windows.System.LauncherOptions();
launcherOptions.TargetApplicationPackageFamilyName = "Microsoft.WindowsMaps_8wekyb3d8bbwe";
var success = Windows.System.Launcher.LaunchUriAsync(uriNewYork, launcherOptions);
}));
}
}
Whatan Antwort auf diese Frage geben muss:
- Wie den Index des ListItem erhalten, die die AppBarButton ist enthalten, die in der relaycommand verwendet gedrückt wurde wird (die ListItem bewusst werden wird nicht ausgewählt, wenn der Benutzer die AppBarButton drängt)