WPF Interchangable User Controls inheriting interface-Collection of common programming errors

I have a number of user controls that implement video playback for different sources (Streaming, File, Network etc…)

I have an IVideoPlayer interface that dictates the properties/methods available on these controls.

So if I have: UC1, UC2 and UC3 that all implement IVideoPlayer.

I have my main app that needs to have an IVideoPlayer on it, but will only know at runtime which one it should be.

I need to be able to bind to whatever IVideoPlayer is used from the main apps XAML.