c事件订阅:订购订阅者

  • 本文关键字:事件 c# wpf event-handling
  • 更新时间 :
  • 英文 :


我有一个wpf应用程序,它显示了一个自定义组合框。ComboBox的内部Textbox订阅TextChanged事件处理程序。此外,组合框附加到文本过滤行为。它还订阅了textChanged事件处理程序。

现在的场景是:

  1. 解析app-xaml并创建静态资源(样式):-->内部TextBox是TextChanged的第一个订阅者
  2. ComboBox-xaml被解析:behavior附加-->它成为TextChanged的第二个订阅者

现在你猜对了:我喜欢成为第一个订阅者的行为,因为它进行过滤,组合框对过滤结果进行操作。

活动订阅位于此处:1) 样式(作为静态资源)

<Style x:Key="MyComboBoxStyle" TargetType="ComboBox">
 ...
    <controls:TextBox x:Name="PART_EditableTextBox"
     ...
        TextChanged="PART_EditableTextBox_TextChanged"/>
</Style>

2) 行为附加到运行时组合框对象:

<myctrl:MyComboBox>
 ...
    <behaviors:FilterBehavior.TextBox="{Binding ElementName=PART_EditableTextBox}">
</myctrl:MyComboBox>

无选项:混合行为/组合框代码,因为该行为用于过滤其他文本输入控件。

我可以强制订阅者成为调用列表的第一个/最后一个吗?

由于我了解到调用列表大多是按订阅顺序调度的,但无法保证,所以我现在使用KeyUp处理程序,而不是OnTextChanged。感谢斯里拉姆的提示!

相关内容

  • 没有找到相关文章