【问题标题】:Notify on ArrangeOverride通知安排覆盖
【发布时间】:2014-03-05 16:40:10
【问题描述】:

我有一个带有自定义面板的项目控件。基于这个itemsControl我正在写一个Behavior(行为) 我需要的是,每当为我的 ItemsPanel 安排覆盖时,我的行为都应该得到通知。在我的行为中,我可以访问 itemsControl 和 itemsPanel。

一种方法是我可以从 ItemsPanel 覆盖引发一个事件并在我的行为中订阅它。

但是如果您有更好的解决方案,请您提出建议吗?

【问题讨论】:

    标签: c# .net wpf itemscontrol


    【解决方案1】:

    我会尝试这样做:

    1. 创建一个“假”控件

      class ArrangeNotifier : Control
      {
          public event EventHandler OnArrange;
          protected override ArrangeOverride(blabla)
          {
              (OnArrange??delegate{})(blabla);
          }
      }
      
    2. 在您的“OnAttached”行为中,创建一个 var myNotifier = new ArrangeNotifier(),您将添加到面板 AttachedObject(这要求您的行为必须是 Behavior<Panel>

    3. 根据您的行为订阅 myNotifier.OnArrange,并在处理程序中执行您的操作

    4. 不要忘记在你的行为的“OnDettached”中删除你的假控制

    [编辑]我看错了你的问题,我猜这就是你的建议:) 我没有看到任何其他方式。

    【讨论】:

    • 感谢您寻找 Olivier,但这不是我想要的。
    猜你喜欢
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多