用途:在不写代码后置(code-behind)的情况下,用 Microsoft.Xaml.Behaviors.Wpf 为 WPF 的 XAML 添加交互行为与触发器,并遵循 MVVM 模式。
主要能力:通过 NuGet 安装 Microsoft.Xaml.Behaviors.Wpf(PackageReference 写法为 <PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.*" />),并在 XAML 中声明命名空间 xmlns:b="http://schemas.microsoft.com/xaml/behaviors"。支持 EventTrigger,可用 InvokeCommandAction 绑定命令,并通过 PassEventArgsToCommand="True" 传递事件参数;也可用 ChangePropertyAction 改属性。支持 DataTrigger,按数据条件执行动作。支持自定义 Behavior,继承 Behavior<UIElement>,重写 OnAttached/OnDetaching,可通过 DependencyProperty 配置;示例包括 FocusOnLoadBehavior、SelectAllOnFocusBehavior、DragDropBehavior。还支持自定义 TriggerAction,继承 TriggerAction<DependencyObject> 并实现 Invoke,例如 ShowMessageAction。
常见模式:用 CallMethodAction 关闭窗口;用 MoveNextOnEnterBehavior 在回车时移动焦点。
使用方式:在控件内使用 b:Interaction.Triggers 挂触发器,或用 b:Interaction.Behaviors 挂行为。
最佳实践:务必在 Behavior 中实现 OnDetaching 以防内存泄漏;优先使用 InvokeCommandAction 遵循 MVVM;通过 DependencyProperty 使行为可配置;设计可复用的 Behavior;避免在代码后置直接写事件处理器、在 Behavior 中直接引用 ViewModel、硬编码值,以及只适配特定控件的行为。
相关技能:handling-wpf-input-commands、routing-wpf-events、implementing-wpf-dragdrop。
限制:资料未提供具体价格、平台或效果类信息,暂未提供。