當列表視圖具有焦點時,回車鍵的默認行爲是選擇第一個元素listview,向上和向下箭頭鍵滾動列表視圖。我試圖防止這種默認行爲,並掛鉤我的自定義邏輯。防止在XAML/C#中的ListView的Return(Enter),向上和向下箭頭鍵的默認行爲(Windows 10)
我能夠使用的KeyDown的列表視圖如下實施訪問鍵:
背後的辦法代碼:
CoreWindow.GetForCurrentThread().KeyDown += KeyDownHandler;
MVVM方法:
<ListView SelectedIndex="{Binding IsSelected, Mode=TwoWay}"/>
觸發該keydown屬性:
<core:EventTriggerBehavior EventName="KeyDown">
<core:InvokeCommandAction Command="{x:Bind VMDataContext.KeyDownCommand}" />
</core:EventTriggerBehavior>
種
並用行爲來滾動列表視圖來選擇指數的滾動條:
<corebehaviors:ListViewScrollBehaviour SelectedIndex="{x:Bind IsSelected, Mode=OneWay}"/>
以上處理器越來越觸發時ListView控件沒有焦點。當列表視圖具有焦點時,箭頭向上,向下和Enter鍵的默認行爲被觸發,而不是我附加的行爲。有沒有辦法阻止默認行爲?
謝謝賈斯汀!它非常適用於Enter鍵而不是Up和Down。這很奇怪,因爲斷點沒有被上下箭頭鍵擊中。我也嘗試覆蓋OnKeyUp函數並觀察到相同的行爲。 –
嗯,所有三個鍵都在我的測試項目中工作。 –
順便說一句,你可能想在某些情況下調用'e.Handled = true;'而不是'return'。 –