在WPF中,可以使用Binding来将ComboBox绑定到两个不同的值,并处理选择事件。以下是一个简单的示例:
XAML代码:
```xml
```
其中,Names和SelectedName是ViewModel中的属性,分别表示下拉列表中的选项和当前选中的选项。DisplayMemberPath和SelectedValuePath分别指定显示名称和实际值的属性。
在代码中,我们还为ComboBox的SelectionChanged事件添加了一个处理程序,以便在用户选择新选项时执行一些操作。
C#代码:
```csharp
public class ViewModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
    private List _names;
    public List Names
    {
        get { return _names; }
        set
        {
            _names = value;
            OnPropertyChanged("Names");
        }
    }
    private Name _selectedName;
    public Name SelectedName
    {
        get { return _selectedName; }
        set
        {
            _selectedName = value;
            OnPropertyChanged("SelectedName");
        }
    }
    public ViewModel()
    {
        Names = new List
        {
            new Name { Id = 1, Name = "John" },
            new Name { Id = 2, Name = "Mary" },
            new Name { Id = 3, Name = "Bob" }
        };
    }
    protected void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
    private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        // 处理选择事件
    }
}
public class Name
{
    public int Id { get; set; }
    public string Name { get; set; }
}
```
在ViewModel中,我们定义了Names和SelectedName属性,并在构造函数中初始化了下拉列表的选项。我们还实现了INotifyPropertyChanged接口,以便在属性更改时通知UI更新。
最后,在ComboBox_SelectionChanged方法中,我们可以处理用户选择新选项时要执行的操作。