我有一个由mouseUp事件触发的函数。一切正常,但有时候没有检测到mouseUp事件。 事实上,我有一个listview,包含项目,当我选择一个项目时,它会触发一个函数。但并非总是如此。
<ListView Margin="4" Grid.Row="1" Grid.ColumnSpan="2" x:Name="statinfoListview"
ItemsSource="{Binding Path=ExistingStateInfos, ElementName=Window}"
SelectedItem="{Binding Path=SelectedStateInfo, ElementName=Window}">
<ListView.ItemTemplate>
<DataTemplate DataType="{x:Type States:StateInfo}">
<TextBlock Text="{Binding Path=Name}" MouseUp="ApplyStateInfoNameToState_Click" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
答案 0 :(得分:2)
也许在释放按钮之前将鼠标从文本块中拉出来?另请注意,如果您位于文本右侧,则可能无法单击文本块,这可能有助于将HorizontalContentAlignment =“Stretch”添加到ListView。
答案 1 :(得分:0)
您无法保证将调用MouseUp处理程序,因为事件可以由VisualTree中的后代可视化处理。如果要确保捕获事件,则应使用隧道事件(PreviewMouseUp)。
另一种方法是在后面的代码中使用AddHandler方法,并指定您要管理已处理的事件。