wpf listbox数据模板中的keyup事件
我在datatemplate内的两个StackPanel上都添加了一个KeyUp事件,但它不会触发。使用PreviewKeyUp事件。那总是着火wpf listbox数据模板中的keyup事件,wpf,Wpf,我在datatemplate内的两个StackPanel上都添加了一个KeyUp事件,但它不会触发。使用PreviewKeyUp事件。那总是着火 您可能还想尝试PreviewKeyDown 不会触发KeyUp事件,因为它是具有焦点的ListViewItem。改为订阅ItemContainerStyle中的KeyUp事件 <ListView SelectionChanged="RecordSelected" Height="134" HorizontalAlignme
您可能还想尝试PreviewKeyDown 不会触发
KeyUp
事件,因为它是具有焦点的ListViewItem
。改为订阅ItemContainerStyle
中的KeyUp
事件
<ListView SelectionChanged="RecordSelected" Height="134" HorizontalAlignment="Left" Margin="10,10,0,0" Name="processList" VerticalAlignment="Top" Width="207">
<ListView.ItemTemplate>
<DataTemplate x:Name="record" DataType="{x:Type local:MyApp}">
<StackPanel Name="cell" Orientation="Vertical" KeyUp="cell_KeyUp">
<StackPanel KeyUp="cell_KeyUp" GotFocus="RecordSelected" KeyDown="RecordSelected" MouseDown="RecordSelected" Orientation="Horizontal" Tag="{Binding MyApp}">
<CheckBox BorderThickness="1" IsChecked="{Binding IsChecked}" Margin="3,3,3,3" Name="checkbox" />
<TextBlock GotFocus="RecordSelected" HorizontalAlignment="Left" KeyDown="RecordSelected" Margin="3,0,0,3" Name="displayname" Text="{Binding DisplayName}" VerticalAlignment="Center" Width="200" />
</StackPanel>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
在事件处理程序中,发送者将成为焦点
ListViewItem
。将它的内容
投射到源代码中,并切换IsChecked
。如果您的源类实现了INotifyPropertyChanged
,这将起作用。否则,您可以搜索可视树以查找列表视图项的子复选框,
,它不起作用。我想在用户点击spacebar.Hrm时选中/取消选中该复选框。有没有什么重要的事件发生在它身上?这可能是一个焦点问题。我刚检查过,我的PreviewKeyUp正在启动。我想看看它是否有焦点,因为我认为如果有,它应该发射。
<ListView ...>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<EventSetter Event="KeyUp" Handler="cell_KeyUp"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<!-- ... -->
</ListView.ItemTemplate>
</ListView>