有沒有一個標準的方法呢?
不是。你所描述的不是標準行爲。
由於在ListView
的項目實際上被選爲按上下鍵在鍵盤上(不按ENTER
),你真的沒有其他選擇,而不是處理一個鍵和鼠標事件我很害怕。
但是這應該是一個很容易實現的東西。例如,您可以處理ListViewItem容器的ListView
和PreviewMouseLeftButtonDown
事件的PreviewKeyDown
事件。
請參考以下示例代碼。
<ListView x:Name="lv" PreviewKeyDown="lv_PreviewKeyDown">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="lv_PreviewMouseLeftButtonDown" />
</Style>
</ListView.ItemContainerStyle>
</ListView>
public MainWindow()
{
InitializeComponent();
lv.ItemsSource = new List<string> { "1", "2", "3" };
}
private void lv_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show((sender as ListViewItem).DataContext.ToString());
}
private void lv_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
MessageBox.Show(lv.SelectedItem.ToString());
}
}
這不是 「腥」 來實現一些自定義的行爲:)
來源
2017-03-27 16:15:42
mm8
感謝。我懷疑應該有一個內置的實現,因爲Windows本身具有類似的行爲(在現代UI中,正如我所提到的那樣)。 – Sambusak
Settings應用程序是一個UWP應用程序,它當然不使用WPF ListView控件。所以不,你必須自己實現這個功能。 – mm8
這是UWP好吧,但「檢查」工具顯示它有一個ListView類。那是另一個嗎? – Sambusak