0
我有自定義面板的項目控件。基於這個itemsControl我正在寫行爲(行爲) 我需要的是每當我的ItemsPanel被安排覆蓋被稱爲我的行爲應該得到通知。在我的行爲中,我有權訪問itemsControl和itemsPanel。在ArrangeOverride上發出通知
一種方法是我可以從ItemsPanel覆蓋引發一個事件,並在我的行爲中訂閱它。
但是,如果你有更好的解決方案,請你可以建議嗎?
我有自定義面板的項目控件。基於這個itemsControl我正在寫行爲(行爲) 我需要的是每當我的ItemsPanel被安排覆蓋被稱爲我的行爲應該得到通知。在我的行爲中,我有權訪問itemsControl和itemsPanel。在ArrangeOverride上發出通知
一種方法是我可以從ItemsPanel覆蓋引發一個事件,並在我的行爲中訂閱它。
但是,如果你有更好的解決方案,請你可以建議嗎?
下面是我想嘗試做:
創建一個「假」控制
class ArrangeNotifier : Control
{
public event EventHandler OnArrange;
protected override ArrangeOverride(blabla)
{
(OnArrange??delegate{})(blabla);
}
}
你對自己的行爲「OnAttached」,創建一個var myNotifier = new ArrangeNotifier()
,你會添加到面板AttachedObject(它要求您的行爲是Behavior<Panel>
)
將您的行爲記錄到myNotifier.OnArrange ,做你的東西在處理
不要忘記刪除你的假控制你的行爲的「OnDettached」
[編輯]我誤解你的問題,我想,這是你建議:) 我沒有看到任何其他的方式。
感謝您看Olivier,但這不是我所期待的。 – SD13