एक कस्टम रूटेड घटना से कैसे पंजीकरण करें।डब्ल्यूपीएफ कस्टम रूटेड घटनाक्रम - सदस्यता छोड़ने के लिए कैसे?
मैं निम्नलिखित कोड (के लिए कस्टम कराई घटनाक्रम बहुत मानक)
//Dispatch the Video Detection Movements
public delegate void MovementRoutedEventHandler(object sender
, MovementRoutedEventArgs e);
public class MovementRoutedEventArgs : RoutedEventArgs
{
private readonly DahuaDevice _device;
private readonly byte[] _canals;
private readonly DateTime _when;
public MovementRoutedEventArgs(DahuaDevice device, byte[] canals, DateTime when)
{
_device = device;
_canals = canals;
_when = when;
}
public DahuaDevice Device
{
get { return _device; }
}
public Byte[] Canals
{
get { return _canals; }
}
public DateTime When
{
get { return _when; }
}
}
public static RoutedEvent MovementEvent = EventManager.RegisterRoutedEvent(
"Movement"
, RoutingStrategy.Tunnel
, typeof(MovementRoutedEventHandler)
, typeof(Window)
);
public event RoutedEventHandler Movement
{
add { AddHandler(MovementEvent, value); }
remove { RemoveHandler(MovementEvent, value); }
}
public void RaiseMovementEvent(DahuaDevice device, byte[] canals, DateTime when)
{
RaiseEvent(new MovementRoutedEventArgs(device, canals, when)
{
RoutedEvent = MovementEvent
});
}
अब एक वर्ग इस लाइन के साथ इस घटना की सदस्यता होगा:
//Receive the Movement events
EventManager.RegisterClassHandler(
typeof(Window)
, Main.MovementEvent
, new Main.MovementRoutedEventHandler(MovementHandler));
जब मैं कक्षा उदाहरण बंद करते हैं, मुझे घटना से सदस्यता छोड़ना चाहिए (अन्यथा, उदाहरण कचरा नहीं होगा)।
मुझे क्या कॉल करना चाहिए? मैंने RegisterClassHandler(typeof(Window), Main.MovementEvent, **null**)
की कोशिश की लेकिन मुझे अपवाद मिला ...
कोई भी सहायता आपका स्वागत है। अग्रिम में धन्यवाद।
जेएम
त्वरित उत्तर के लिए बहुत बहुत धन्यवाद। –
खुशी है कि मैं आपकी मदद करने में सक्षम था। –