wpf listbox 中SelectedItemChanged怎么正确绑定
时间: 2024-05-02 13:17:59 浏览: 136
你可以使用以下步骤来正确绑定 WPF ListBox 中的 SelectedItemChanged 事件:
1. 创建一个名为 SelectedItem 的属性,用于存储 ListBox 中选择的项。
```csharp
private object selectedItem;
public object SelectedItem
{
get { return selectedItem; }
set
{
selectedItem = value;
// 触发 PropertyChanged 事件
OnPropertyChanged("SelectedItem");
}
}
```
2. 在 XAML 中,将 ListBox 的 SelectedItem 属性绑定到 SelectedItem 属性。
```xaml
<ListBox SelectedItem="{Binding SelectedItem}">
<!-- ListBox 内容 -->
</ListBox>
```
3. 在 ViewModel 的构造函数中,为 SelectedItemChanged 事件添加处理程序,并在处理程序中更新 SelectedItem 属性。
```csharp
public ViewModel()
{
// 为 SelectedItemChanged 事件添加处理程序
SelectedItemChangedCommand = new RelayCommand(OnSelectedItemChanged);
// 其他初始化操作
}
public ICommand SelectedItemChangedCommand { get; private set; }
private void OnSelectedItemChanged()
{
SelectedItem = ListBox.SelectedItem;
}
```
4. 最后,确保实现 INotifyPropertyChanged 接口,并在 SelectedItem 属性更改时触发 PropertyChanged 事件。
```csharp
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
```
这样,当用户在 ListBox 中选择一个项时,SelectedItemChanged 事件将触发,并且你的 ViewModel 中的 SelectedItem 属性将更新。
阅读全文