【发布时间】:2017-08-10 16:52:59
【问题描述】:
我有ListBox 有很多项目和边框,它应该完成将所选项目更改为ListBox 的任务。
对于这个任务,我尝试使用边框事件MouseLeftButtonUp(或MouseLeftButtonDown)。问题是当我单击鼠标左键时,选择会向下移动到 2 个位置,而我只想移动 1 个位置。
我一步步调试,这个方法真的执行了2次。
这是事件方法的代码:
private void border1_childGrid6_MouseLeftButtonUp(object sender,
MouseButtonEventArgs e)
{
index = listBox1_childGrid5.SelectedIndex;
index++;
listBox1_childGrid5.SelectedIndex = index;
}
"index"类开头的变量初始化:
int index = 0;
Q1:鼠标点击执行2次Border事件方法是典型行为吗?这很奇怪,因为到目前为止我还没有遇到过此类事件的这种行为。
Q2:我该怎么做才能让这个事件只执行 1 次或以其他方式下移列表项选择 1 per 1 click???
【问题讨论】:
-
在我看来,您的 Border 内还有另一个元素未处理点击事件。然后将该事件传播到您的边界。检查事件 args 上的原始源属性,看看是什么发送了该事件。
-
边框里面有一个TextBlock
-
问题已解决。 Border 内的 TextBlock 与 Border 事件同名,该事件处理程序在 1 次单击后被执行 2 次span>
标签: wpf events listbox border selection