Я думаю, вам нужно будет обернуть элемент управления WinForms в класс, представляющий DependencyProperties или, по крайней мере, реализующий INotifyPropertyChanged.
Таким образом, у вас будет такой класс:
public class WinFormsWrapper : WindowsFormsHost
{
//You'll have to setup the control as needed
private static MyWinFormsControl _control;
public static readonly DependencyProperty IsSpinningProperty = DependencyProperty.Register("IsSpinning", typeof(bool), typeof(WinFormsWrapper),
new FrameworkPropertyMetadata(_control.IsSpinning, new PropertyChangedCallback(IsSpinning_Changed)));
private static void IsSpinning_Changed(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
_control.IsSpinning = (bool)e.NewValue;
}
public bool IsSpinning
{
get { return (bool)GetValue(IsSpinningProperty); }
set { SetValue(IsSpinningProperty, value); }
}
}
Предполагаетсячто у вас есть свойство IsSpinning в вашем элементе управления WinForms.В зависимости от ваших потребностей может быть проще реализовать INotifyPropertyChanged вместо использования DependencyProperties.
Добавлено Ian Ringrose:
Этот пример кода явно неправильный (см. Комментарии о том, что _control является статическим), но показывает, как решить проблему.Поскольку в настоящее время я не использую WPF, я не собираюсь редактировать код, поскольку не могу проверить свои правки.
Я оставляю этот ответ в качестве принятого ответа, поскольку он содержит информацию, необходимую для решенияпроблема.
Я добавил это к ответу, поскольку комментарии иногда удаляются, и это мнения получателей от людей, выполняющих поиск в Google.