[ PROMPT_NODE_23712 ]
behaviors
[ SKILL_DOCUMENTATION ]
# 交互与逻辑
为了保持 XAML 的整洁和可维护性,请最小化视图中的逻辑并避免过度使用转换器。
## 🎭 Xaml.Interaction.Behaviors
使用 `Interaction.Behaviors` 处理与 UI 相关但不属于 ViewModel 的逻辑,例如焦点管理、动画或专门的事件处理。
xml
### 为什么使用行为 (Behaviors)?
- **封装性**:UI 逻辑包含在可复用的行为类中。
- **整洁的 XAML**:避免了后台代码和复杂的 XAML 触发器。
- **可测试性**:行为可以独立于视图进行测试。
## 🚫 避免转换器 (Converters)
转换器通常会导致隐藏在 XAML 中的“魔法”逻辑。尽可能优先使用:
1. **ViewModel 属性**:让 ViewModel 提供最终的数据格式 (例如:格式化为显示用的 `string`)。
2. **MultiBinding**:直接在 XAML 中用于简单的逻辑组合 (与/或)。
3. **行为 (Behaviors)**:用于涉及状态或事件的更复杂交互。
### 何时使用转换器?
仅在转换纯粹是视觉上的且在不同上下文中高度可复用时使用 (例如 `BoolToOpacityConverter`)。
## 🧩 简化交互
如果你发现自己需要一个复杂的转换器或行为,请考虑组件是否可以简化,或者数据模型是否可以调整,以使视图绑定更加直接。