.net wpf binding windowsformshost

.net - Se creó un Bindable WindowsFormsHost, pero la actualización secundaria no se refleja para controlar



wpf binding (1)

En lugar de crear un contenedor, podría envolver WindowsFormsHost en un ContentControl y establecer su propiedad Content a través de un enlace. De esta forma evitará el problema con la propiedad WindowsFormsHosts Child que no sea una propiedad de dependencia.

Algo como esto en XAML:

<ContentControl Content="{Binding MyWindowsFormsHost}" />

..y esto en tu código subyacente:

public WindowsFormsHost MyWindowsFormsHost { get { return new WindowsFormsHost(){Child=myWinformsControl}; } }

Creé me encontré con un problema en el que quiero vincular un control a un control de WindowsFormsHost. Pero como todos sabemos, la propiedad Child no es un DP, así que creé un contenedor.

/// <summary> /// Bindable version of windows form hosts /// </summary> public class BindableWindowsFormsHost : WindowsFormsHost { /// <summary> /// Max value of the textbox /// </summary> public Control BindableChild { get { return (Control)GetValue(BindableChildProperty); } set { SetValue(BindableChildProperty, value); } } // Using a DependencyProperty as the backing store for Max. This enables animation, styling, binding, etc... public static readonly DependencyProperty BindableChildProperty = DependencyProperty.Register("BindableChild", typeof(Control), typeof(BindableWindowsFormsHost), new FrameworkPropertyMetadata(new PropertyChangedCallback(OnBindableChildChanged))); /// <summary> /// Handles changes to the FlyoutWindowSize property. /// </summary> private static void OnBindableChildChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ((WindowsFormsHost)d).Child = e.NewValue as Control; } }

El e.NewValue obtiene el control que quiero y lo establece correctamente, PERO no veo el cambio reflejado. El elemento secundario está configurado, pero no puede ver el elemento WindowsFormsHost con un nuevo control.

¿Alguien tiene idea?

Gracias y Saludos, Kev84