표준 방법이 있습니까?
아니요. 설명하는 것은 표준적인 동작이 아닙니다. 당신이 (ENTER
를 누르지 않고) 키보드의 위, 아래 키를 누를 때 ListView
의 항목 이후
은 실제로 당신이 정말로 키와 내가 두려워 마우스 이벤트를 처리하는 것보다 다른 선택의 여지가, 선택됩니다.
하지만 구현하기가 쉽습니다. 예를 들어 ListView
에 대해 PreviewKeyDown
이벤트를 처리하고 ListViewItem 컨테이너에 대해 PreviewMouseLeftButtonDown
이벤트를 처리 할 수 있습니다.
다음 샘플 코드를 참조하십시오.
<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
설정 앱은 UWP 앱이며 WPF ListView 컨트롤을 사용하지 않습니다. 그렇다면이 기능을 직접 구현해야합니다. – mm8
UWP는 괜찮지 만 "inspect"도구는 ListView 클래스가 있음을 보여줍니다. 그거 또 하나 야? – Sambusak