У меня есть MainWindow, в котором содержится экземпляр DemoUI (UserControl).WPF InvalidOperationException Получение справки MainWindow
Из экземпляра класса под названием DemoModule у меня есть ссылка на DemoUI, который я называю _demoUI
.
Когда я пытаюсь получить ссылку на MainWindow изнутри DemoModule использованием
var parentWindow = Window.GetWindow(_demoUI);
Я получаю эту InvalidOperationException
:
The calling thread cannot access this object because a different thread owns it.
В конце концов, я хочу, чтобы иметь возможность обновить значение индикатора выполнения MainWindow, использующее его Диспетчер, следующим образом:
var progressBar = parentWindow.FindName("ProgressBar") as ProgressBar;
progressBar.Dispatcher.Invoke(DispatcherPriority.Normal,
new DispatcherOperationCallback(o => {
progressBar.Value = Progress = args.Current;
return null;
}), null);
Update 1
public void OnProgressChanged(object sender, ProgressChangedEventArgs args)
{
Progress = Convert.ToInt32(args.Current * 100);
var progressBar = Application.Current.MainWindow.FindName("ProgressBar") as ProgressBar;
if (progressBar != null)
progressBar.Value = Progress;
}
Каков ваш вопрос? –
Мой вопрос, очевидно, об исключении. –