wpf listbox 中SelectedItemChanged怎么正确绑定
时间: 2024-05-08 22:17:50 浏览: 180
你可以通过以下步骤正确绑定 WPF ListBox 的 SelectedItemChanged 事件:
1. 在 XAML 中,给 ListBox 添加一个名为 "listBox" 的名称属性:
```xaml
<ListBox x:Name="listBox" ... />
```
2. 在 ViewModel 或 CodeBehind 中创建一个 SelectedItemChanged 事件处理程序:
```csharp
private void OnSelectedItemChanged(object sender, RoutedEventArgs e)
{
// 处理选中项更改事件
}
```
3. 在 XAML 中,使用 EventSetter 绑定 SelectedItemChanged 事件到处理程序:
```xaml
<ListBox x:Name="listBox">
<ListBox.ItemTemplate>
<!-- 设置模板 -->
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<EventSetter Event="Selected" Handler="OnItemSelected"/>
<EventSetter Event="Unselected" Handler="OnItemUnselected"/>
</Style>
</ListBox.ItemContainerStyle>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding SelectionChangedCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ListBox>
```
注意:使用 Interaction.Triggers 绑定 SelectionChanged 事件到 ViewModel 中的命令对象,而不是使用 SelectedItemChanged 事件。这是因为 SelectedItemChanged 事件在某些情况下可能不会触发,而 SelectionChanged 事件始终会触发。
阅读全文