C#通过鼠标或键盘更改WPF选择
我已经在我的项目中插入了一个WPF组合框。目前,我在组合框中有一个keydown事件。现在我有一个问题,我也会选择一个项目与鼠标。如果我使用selectionchanged事件,如果通过键盘更改,它也将执行。如果我使用mousekeydown事件,如果我不知道如何获取单击的项目,它也会起作用。见示例:C#通过鼠标或键盘更改WPF选择,c#,wpf,combobox,keyboard,selectionchanged,C#,Wpf,Combobox,Keyboard,Selectionchanged,我已经在我的项目中插入了一个WPF组合框。目前,我在组合框中有一个keydown事件。现在我有一个问题,我也会选择一个项目与鼠标。如果我使用selectionchanged事件,如果通过键盘更改,它也将执行。如果我使用mousekeydown事件,如果我不知道如何获取单击的项目,它也会起作用。见示例: private void CMB_Adresse_KeyUp(object sender, KeyEventArgs e) { try
private void CMB_Adresse_KeyUp(object sender, KeyEventArgs e)
{
try
{
if (e.Key == System.Windows.Input.Key.Down || e.Key == System.Windows.Input.Key.Up)
{
Properties.Settings.Default.CMB_Adresse_Temp = ((string)CMB_Adresse.SelectedItem);
}
else
{
在WPF中实现这一点的正确方法是创建一个ViewModel来保存值和所选值的列表,并将组合框
ItemsSource
和SelectedItem
绑定到该列表。这样,如果用户使用鼠标、键盘或在计算机的RAM中放置磁铁来选择项目,您就不必担心。HighCore是正确的。一般来说,在使用WPF时不应该使用事件,尤其是OnSelectedItemChanged之类的东西。另一方面,如果你想写WPF控件(不是用户控件),那么你应该使用keyup和其他东西。。。