public override void OnExecute(object sender, ExecutedRoutedEventArgs e)
        {
            IConfigurableInputProvider provider = mainModel.Logic.InputProviderLogic.CurrentProvider as IConfigurableInputProvider;

            if (provider != null)
            {
                Window configWindow = new Window();
                configWindow.SizeToContent = SizeToContent.WidthAndHeight;
                configWindow.Content       = provider.GetConfigurationUI();
                configWindow.Owner         = App.Current.MainWindow;
                configWindow.ShowDialog();
            }
        }
        public FilterConfigurationModel(IConfigurableInputProvider inputProvider)
        {
            this.inputProvider = inputProvider;
            AcceptCommand      = new AcceptFilterConfigurationCommand(this);
            Filters            = new ObservableCollection <FilterModel>();

            if (!DesignerProperties.GetIsInDesignMode(this))
            {
                BitmapProvider provider = inputProvider as BitmapProvider;
                if (provider != null)
                {
                    foreach (IFilter filter in provider.Filters)
                    {
                        Filters.Add(new FilterModel(filter));
                    }
                    provider.FilterUpdated += NewFrame;
                }
            }
        }