Лучший способ показать Busy Bar в приложении WPF - PullRequest
1 голос
/ 11 марта 2010

У меня есть приложение WPF, где у меня есть одна основная форма, а другие пользовательские элементы управления отображаются в основной форме как дочерняя форма. Я должен показать Busy bar, когда я делаю асинхронный вызов к базе данных. Каков наилучший способ объявить объект Busy bar и затем использовать его в каждом дочернем пользовательском элементе управления. Нужно ли мне объявлять объект «занятый бар» в главной форме, а затем использовать его, дочерний пользовательский элемент управления или файл приложения лучше, или есть какой-то хороший способ.

1 Ответ

1 голос
/ 11 марта 2010

Это зависит от того, является ли ваша «панель занятости» элементом управления, который появляется внутри других элементов управления или окон, или же всплывающим окном в отдельности.

Если это элемент управления, вы не можете (легко) использовать один экземпляр элемента управления в нескольких местах приложения. Экземпляр элемента управления WPF является частью визуального и логического дерева. Он не может быть частью двух визуальных деревьев. Вы можете создать элемент управления BusyBar class и объявить несколько экземпляров этого в различных местах, где это необходимо: для этого используйте пользовательский элемент управления (WPF ) или пользовательский шаблон управления (WPF) в Visual Studio.

Если это окно, вы можете создать его во время запуска приложения, но оставить его скрытым. Затем вы можете показать его из кода при необходимости (используя метод Show или ShowDialog). Тем не менее, не ясно, зачем вам это нужно, чтобы быть одиноким в любом случае. Создание окон обходится дешево, особенно по сравнению с вызовами по сети в базу данных. Опять же, объявление класса, создание и отображение экземпляров класса, когда это необходимо, было бы более обычным подходом. Вы можете легко создать статический метод для инкапсуляции цикла «create-bind-show-wait-hide», чтобы не загрязнять код вашего приложения деталями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...