1

独自のWeakEventManagerを作成して、msdn に従って WeakEventManager を実装しようとしています。

私の問題はStaticPublisher、静的イベントを公開している静的クラスがあることOnSomeStaticEventです。

このイベントを別のクラスからサブスクライブしたい。これは私が今持っているコードです(簡略化):

public static class StaticPublisher
{         
//definition of static event
    public static event EventHandler<CancelEventArgs> OnSomeStaticEvent;
    public static void OnSomeStaticEventHandler(CancelEventArgs e)
    {
        EventHandler<CancelEventArgs> handlerCopy = OnVisualDisplayBeforeRemoved;
        if (handlerCopy != null)
            handlerCopy(null, e);
    }
}

私のWeakEventManagerは次のようになります(msdnをもう一度たどります):

class OnSomeStaticEventWeakEventManager : WeakEventManager
{
    private OnSomeStaticEventWeakEventManager ()
    {

    }

    /// <summary>
    /// Add a handler for the given source's event.
    /// </summary>
    public static void AddHandler(StaticPublisher, EventHandler<CancelEventArgs> handler)
    {
        if (source== null)
            throw new ArgumentNullException("source");
        if (handler == null)
            throw new ArgumentNullException("handler");

        CurrentManager.ProtectedAddListener(source, handler);
    }
// more code follows down. but is all relative to this part

StaticPublisher私の問題は、引数として与えることが許可されていないため、このイベントにリスナーを追加できないことです。ここに回避策はありますか?私は本当にここでいくつかの助けを借りることができました...

4

0 に答える 0