Можете попробовать сделать велосипед, отдельно сдампив ассоциации коммитов с ветками, и затем при помощи grep/sed заменить номера коммитов. Однако один коммит может существовать в нескольких ветках, так что сама идея изначально некорректная.
Если в студии поставить брейкпоинты на Dispatcher.Invoke и на mainCanvas.Children.Add - они срабатывают в режиме отладки?
P. S. Лучше начинать отрисовку не в конструкторе, а тогда, когда форма уже показана (подпишитесь на событие Load, и переместите запуск отрисовки из конструктора туда).
Рад что смог вам помочь. Не стесняйтесь обращаться к MSDN, для Windows-разработчика это один из главных источников информации. У этого свойства есть ещё один баг, когда у вас скрыто окно (не свёрнуто, а через Hide), активация окна может не поместить его на передний план (обычно так бывает если у вас в трее есть иконка, и окно появляется/скрывается по нажатию на неё) - в таком случае нужно в том месте, где показываете окно, принудительно присвоить этому свойству false, а потом опять true.
Я думаю что быстрее будет переименовать таблицу с использованием латинских символов. Вообще должно работать, но тут зависит от настроек вашей БД, см https://social.msdn.microsoft.com/Forums/sqlserver...
Также см https://stackoverflow.com/a/37380542/1828989, там же есть рабочая ссылка на SQL fiddle где это работает. Я бы на вашем месте запустил SQL management studio и там бы поигрался для начала с запросами, перед тем, как переносить это в код.
Василий Банников, что ж, в таком случае остаётся сохранять результат предсказания в условный json, запускать скрипт через Process.Start, ждать завершения процесса, затем парсить тот самый условный json.
По факту у вас проблема из-за того, что форма вообще не должна этими делами заниматься, её дело - показать контролы и прокинуть команды в модель (грубо говоря, я понимаю что не всегда нужно делать строгие MVVM, MVC и тд). Я бы на вашем месте для начала определился, чего вы хотите от загрузки файлов, и на основе этих хотелок определил бы интерфейс загрузчика файлов с нужными именно вам методами и событиями. Имея интерфейс, реализовать его - дело техники. Затем вы инжектите свой интерфейс себе туда, где вы хотите его использовать, и используете. Когда нужно подстроить поведение (например, качать в отдельном потоке) - меняете реализацию интерфейса, форма остаётся нетронутой. Я понимаю что звучит сложновато, но на самом деле это очень удобно.
Также было бы интересно узнать, какой именно exception вылетает у вас после загрузки первого файла? Имеет смысл подключить логирование и все ошибки в таких местах логировать.
Вот тут есть пара велосипедов, вдруг наведёт вас на какую-нибудь идею - https://stackoverflow.com/questions/14848274/git-l...