В textbox нет invoke, что делать?

292
12 августа 2017, 00:42

Почему Invoke не идёт в комплект textbox и что можно придумать?

P.S. Команда выполняется из асинхронного потока.

        chatboxedit.Invoke((Action)(() => { chatboxedit.text = message; }));
Answer 1

В WPF перебросом в UI-поток занимаются не контролы, а Dispatcher.

В простейшем случае можно сделать так:

Application.Current.Dispatcher.InvokeAsync(() => { chatboxedit.text = message; });

С другой стороны, если вы пользуетесь WPF, то имеет смысл воспользоваться стандартным паттерном MVVM, и тогда

  • ваши UI-классы не должны заниматься фоновой работой,
  • текст в UI-контролы должен поступать в основном из привязок,
  • в VM результаты фоновых вычислений должны через диспетчер поступать в основной поток, где их можно присваивать VM-свойствам (а UI обновится сам, через привязку).
READ ALSO
Как сделать пароль под AES 256?

Как сделать пароль под AES 256?

Здравствуйте, скажите пожалуйста как сделать 256 битный пароль под AES, на основе пользовательского пароля, длина которого может быть совсем...

481
Как правильно реализовать метод RemoveFromRoleAsync (IUserRoleStore )?

Как правильно реализовать метод RemoveFromRoleAsync (IUserRoleStore )?

Добрый денья пытаюсь реализовать самостоятельно (в учебных целях), свой UserStore и Manager в Identity

242
Как присвоить null календарю в asp.net c#

Как присвоить null календарю в asp.net c#

Есть проблема с присвоением календарю значения nullПишет что null присвоить ему нельзя, пытаюсь конвертировать календарь или как нибудь привести...

223
Передача параметров в FastReport из c#

Передача параметров в FastReport из c#

Пытаюсь передать цифры в стринговом формате в фаст репорт в sql запросНо выдаёт ошибку:

312