1

我有一个由 mouseUp 事件触发的函数。一切正常,除了有时未检测到 mouseUp 事件。事实上,我有一个带有项目的列表视图,当我选择一个项目时,它会触发一个功能。但不总是。

<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>
4

2 回答 2

2

也许您在释放按钮之前将鼠标从文本块中拉出?另请注意,如果您位于文本的右侧,您可能不会单击文本块,将 Horizo​​ntalContentAlignment="Stretch" 添加到 ListView 可能会有所帮助。

于 2012-10-12T15:08:57.677 回答
0

您无法保证将调用 MouseUp 处理程序,因为该事件可以由 VisualTree 中的后代视觉对象处理。如果您想确保捕获事件,则应使用隧道事件 (PreviewMouseUp)。

另一种选择是在后面的代码中使用 AddHandler 方法,并指定您要管理已处理的事件。

于 2012-10-12T14:57:20.143 回答