在 WPF 应用程序中,请解释有哪些绑定模式,以及更新源触发器的作用和常见类型?
考察说明
考查对 WPF 数据绑定中绑定模式与更新源触发器的理解及应用能力
回答思路
- 【回答框架 1】绑定模式决定数据在源和目标之间的流动方向。主要有 OneWay、TwoWay、OneTime、OneWayToSource 和 Default。OneWay 表示源到目标单向更新,TwoWay 双向更新,OneTime 只在初始化时更新一次,OneWayToSource 相反,Default 由目标属性元数据决定,如 TextBox.Text 默认 TwoWay。
- 【回答框架 2】更新源触发器控制 TwoWay 或 OneWayToSource 模式下,源属性何时更新。主要枚举值有 PropertyChanged、LostFocus、Explicit 和 Default。PropertyChanged 在目标属性每次改变时立即更新源,LostFocus 在目标失去焦点时更新,Explicit 需要手动调用 UpdateSource,Default 由控件默认行为决定,如 TextBox 默认 LostFocus。
- 【回答框架 3】选择绑定模式时需考虑数据流方向和性能。例如,显示数据常用 OneWay,编辑表单常用 TwoWay,只读数据可用 OneTime 减少开销。更新源触发器需结合用户体验,如实时搜索可用 PropertyChanged,表单提交可用 LostFocus 或 Explicit 减少过度写入。
- 【关键点 1】WPF 提供 Five binding modes:OneWay、TwoWay、OneTime、OneWayToSource 和 Default
- 【关键点 2】更新源触发器包括 PropertyChanged、LostFocus、Explicit 和 Default,决定源更新时机
- 【关键点 3】TextBox.Text 默认绑定模式为 TwoWay,默认更新触发器为 LostFocus
- 【关键点 4】Explicit 触发需要结合 BindingExpression.UpdateSource 方法使用
- 【易错点 1】不能混淆绑定模式与更新源触发器:模式决定方向,触发器决定时机
- 【易错点 2】默认值因目标属性不同而异,必须查证目标属性的依赖属性元数据