我的要求是我想用右鍵/長螺紋選擇一個項目,並從應用程序欄按鈕和鼠標左鍵點擊相應採取行動/ TAP要我重定向到下一個XAML頁面。我遇到的問題是右鍵單擊,我無法檢測到已點擊了哪些GridView項目,如何將其添加到SelectedItem。
我所做的是,我在GridView的DataTemplate中引入了額外的Grid。在此網格中,我添加了RightTapped事件。
的示例代碼片段是
<GridView x:Name="ItemGridView"
ItemsSource="{Binding Source={StaticResource ItemsViewSource}}"
IsItemClickEnabled="True"
SelectionMode="Single" ItemClick="ItemGridView_ItemClick"
SelectionChanged="ItemGridView_SelectionChanged">
<GridView.ItemTemplate>
<DataTemplate>
<Grid RightTapped="Grid_RightTapped">
<Border Background="White" BorderThickness="0" Width="210" Height="85">
<TextBlock Text="{Binding FileName}" />
</Border>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
事件名稱是Grid_RightTapped。這幫助我檢測到從哪個GridViewItem獲得長按/右鍵單擊。
代碼隱藏的是這樣的:
private void Grid_RightTapped(object sender, RightTappedRoutedEventArgs e)
{
Song selectedItem = (sender as Grid).DataContext as Song;
//the above line will get the exact GridViewItem where the User Clicked
this.ItemGridView.SelectedItem = selectedItem;
//the above line will add the item into SelectedItem and hence, I can take any action after this which I require
}
}
,我們正在做這件事的辦法是,因爲現在我們可以用鼠標右鍵單擊添加單擊項目到GridView的的SelectedItem原因。現在在UWP中,單擊的項目僅通過左鍵單擊添加到SelectedItem中。通過左鍵單擊,我可以使用ItemClick事件導航到另一個頁面。
我嘗試過使用RightTapped,但它沒有給我哪個項目已被選中在GridView中。並且需要對新設計進行思考。我的右鍵單擊選擇項目,並顯示不同的應用程序欄按鈕根據哪個類別被點擊和左鍵單擊/點擊導航。我可以使用哪種控制/事件,這將使我能夠提供這兩種功能。 – Aakansha