C# 触发器与转换器

C# 触发器与转换器,c#,xaml,C#,Xaml,首先,我知道使用触发器和转换器,但我有一些问题,我仍然不确定答案 什么时候最好在转换器上使用触发器 什么是更好的性能-触发器或转换器 转换器所做的每件事都可能与触发器有关,反之亦然 还有一件事,触发器不是很好,因为它在XAML中编写逻辑,这是错误的,而且通常不可读,特别是如果我们在一个页面中编写多个触发器,所以大多数时候我更喜欢使用转换器。我的意见听起来正确吗?转换器用于将数据从内部格式更改为可以在UI上显示并由用户交互的格式。例如,您可以使用转换器将枚举类型更改为组合框的选定值,或将布尔值更改

首先,我知道使用触发器和转换器,但我有一些问题,我仍然不确定答案

  • 什么时候最好在转换器上使用触发器
  • 什么是更好的性能-触发器或转换器
  • 转换器所做的每件事都可能与触发器有关,反之亦然

  • 还有一件事,触发器不是很好,因为它在XAML中编写逻辑,这是错误的,而且通常不可读,特别是如果我们在一个页面中编写多个触发器,所以大多数时候我更喜欢使用转换器。我的意见听起来正确吗?

    转换器用于将数据从内部格式更改为可以在UI上显示并由用户交互的格式。例如,您可以使用转换器将枚举类型更改为组合框的选定值,或将布尔值更改为“可见”/“不可见”,或使用转换器在属性具有特定值时显示和隐藏或启用和禁用UI的不同部分

    触发器允许您根据属性值的更改来更改UI的其他部分。这包括:

    • 突出显示UI的其他部分(例如更改颜色)
    • 启动动画
    有一些重叠,但我会在UI更改为静态时使用转换器,例如,当模式设置为特定值时,选项卡始终处于禁用状态,而触发器用于更动态的更改,如高亮显示、动画等,这些更改由用户操作触发

    正如您所说,触发器将逻辑放入UI中,但我会将它们用于以某种方式更改UI的逻辑,而不是触发模型本身的更改