Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Взывать событие в другом классе / 5 сообщений из 5, страница 1 из 1
25.05.2018, 14:59
    #39649960
mraklbrw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взывать событие в другом классе
Добрый день.
Есть класс MainWindow, в нём есть функция AddPreloadedCharts().
Есть статический класс DataManager, в котором хранятся загруженные котировки акций и есть функция LoadQuotes.

LoadQuotes выщывается из MainWindow, эта функция в конце вызывает MainWindow.AddPreloadedCharts().
Ссылка на объект MainWindow хранится в DataManager.

Я хочу сделать так: функция LoadQuotes в конце своей работы должна вызывать событие в классе
MainWindow, где и будет дальнейшая обработка и вызов AddPreloadedCharts(), и ссылку на MainWindow хранить не придётся.

Код: c#
1.
2.
3.
4.
5.
6.
7.
 public void AddPreloadedCharts(List<string> quoteNames)
        {
            foreach(string quoteCode in quoteNames)
            {
                this.Dispatcher.BeginInvoke(new Action(() => { AddChart(quoteCode, true); }));
            }
        }



Но для вызова события нужно использовать в MainWindow статическую функцию, в ней вызывать нестатическую AddPreloadedCharts, что невозможно.

Подскажите, как тут быть, что-то я путаюсь.
...
Рейтинг: 0 / 0
25.05.2018, 15:17
    #39649976
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взывать событие в другом классе
mraklbrwстатический класс DataManager, в котором хранятся загруженныев статике только константы. Храни в обычном.
...
Рейтинг: 0 / 0
25.05.2018, 17:18
    #39650049
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взывать событие в другом классе
MainWindow вызывает DataManager
DataManager вызывает MainWindow

негодная архитектура, переделать
...
Рейтинг: 0 / 0
25.05.2018, 19:46
    #39650130
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взывать событие в другом классе
Shocker.ProMainWindow вызывает DataManager
DataManager вызывает MainWindow

негодная архитектура, переделать
Угу. Паттерн "медиатор".
А не особо заморачиваясь, можно просто в DataManager передывать не MainWindow, а делегат для коллбэка в нужной ситуации.
...
Рейтинг: 0 / 0
25.05.2018, 23:36
    #39650193
mraklbrw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взывать событие в другом классе
Всем спасибо, разобрался.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Взывать событие в другом классе / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]