private static void DeviceProperty_Changed(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
// Get the sender
CapPlayer typedSender = sender as CapPlayer;
if ((typedSender != null) && (e.NewValue != null))
{
// Make sure that we are not in design mode
if (DesignerProperties.GetIsInDesignMode(typedSender)) return;
// Unsubscribe from previous device
CapDevice oldDevice = e.OldValue as CapDevice;
if (oldDevice != null)
{
// Clean up
typedSender.CleanUpDevice(oldDevice);
}
// Subscribe to new one
CapDevice newDevice = e.NewValue as CapDevice;
if (newDevice != null)
{
// Subscribe
newDevice.NewBitmapReady += typedSender.device_OnNewBitmapReady;
}
}
}