【问题标题】:Controls in a WPF UserControl don`t raise lost focusWPF UserControl 中的控件不会引起失去焦点
【发布时间】:2010-10-28 19:56:42
【问题描述】:

我有一个 MainWindow,在 MainUserControl 的顶部和下方有 3 个主按钮。

在 MainUserControl 中我在前 3 个带有 ButtonBars 的 UserControls 底部有一个 DataGrid。

当我在 DataGridCell 中输入数据并我单击另一个单元格时,在绑定到 DataGrid 的 ViewModel 中会触发属性更改。

当我输入数据...并且我再次单击 3 个主要按钮之一时,由于失去焦点事件而触发了属性更改。

当我 ... 并且我单击 UserControl 中 ButtonBar 中的按钮之一 不会触发任何属性更改,因为似乎没有丢失焦点事件.

我该如何解决这个问题?

【问题讨论】:

    标签: wpf user-controls focus


    【解决方案1】:

    UserControl 或其他元素(如 Menu)上的FocusManager.IsFocusScope="False" 解决了这个问题,我的属性更改现在在模型中提出:)

    【讨论】:

      【解决方案2】:

      如果您将绑定更改为设置 UpdateSourceTrigger=PropertyChanged,那么您将无需依赖 LostFocus 进行属性更新。

      【讨论】:

      • 不能这样做,因为当我离开 DataGridCell 时,我会对 DataGridCell 中更改的文本进行数据库更新。如果我将 UpdateSourceTrigger 从 LostFocus 更改为您建议的 PropertyChanged,我将为您键入的每个字符获得许多 sql 插入...
      猜你喜欢
      • 2014-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      相关资源
      最近更新 更多