Как закрыть окно WPF, нажав кнопку в другом окне? - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь закрыть окно, нажимая кнопку в другом окне и получая System.InvalidOperationException: 'Вызывающий поток не может получить доступ к этому объекту, поскольку он принадлежит другому потоку.'

Окно, которое я хочузакройте созданный CreateWindow ().У него есть кнопка закрытия, но я хочу закрыть это окно, нажав на кнопку, расположенную в другом окне.Кнопка в другом окне вызывает «ReturnToSearchCommand» и создает RelayCommand «ReturnToSearch», где расположен код для закрытия внешнего окна.

Код:

 private void CreateWindow()
        {
            _buttonWindow = new ButtonList();
            var stackPanel = new StackPanel { Orientation = Orientation.Vertical };
            Button _closeButton = new Button();
            _closeButton.Content = "Close";
            _closeButton.Click += new RoutedEventHandler(CloseWindow);
            stackPanel.Children.Add(_closeButton);
            _buttonWindow.Content = stackPanel;
            _buttonWindow.Height = (_companiesDictionary.Keys.Count + 2) * 35;
            _buttonWindow.ShowDialog();
        }
private void CloseWindow(object sender, RoutedEventArgs e)
        {
            _buttonWindow.Close();
        }
public virtual ICommand ReturnToSearchCommand
        {
            get
            {
                return new RelayCommand(ReturnToSearch, delegate () { return true; });
            }
        }
private void ReturnToSearch()
{
    ShowSearchPanel = true;
    PrimaryCategory = null;
    _buttonWindow.Close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...