我有两个 DataGrid,一个用来呈现主要内容,另一个则是用作目录跳转(如下图):
效果:当我点击目录的 DataGrid 时,主 DataGrid 将滚动到目标。

代码很简单,为 ItemsSource 创建一个副本,原本赋予主表,副本赋予目录,目录被点击时,保存 SelectedItem,然后去主表找对应的 Item,并将其设置为 SelectedItem。
问题是,我需要目录面板在点击后,或点击空白部分(即相当于失去焦点)时,目录面板能够自动隐藏,这部分代码也很简单,但我试了下,目录表似乎无法触发 LostFocus 事件。
我现在的解决方法是通过最外层 Window 的 MouseDown 事件来代替目录表的 LostFocus 事件。
但是我不明白为什么目录表的 LostFocus 事件无法触发?