Как получить доступ к членам родителей из внутреннего класса в WPF? - PullRequest
0 голосов
/ 18 мая 2010

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

Я пытался с помощью quartz.net реализовать планирование bit.i создал внутренний класс в классе окна, который мне нужно обновить. У этого внутреннего класса есть метод, который вызывает веб-сервис, и результат должен отображаться обратно пользовательский интерфейс. Вот пример того, что я сделал.

 public partial class Window2 : Window
 {
    private int i;
    public Window2()
    {   
      InitializeComponent();
    }



    public class Myclass :IJob
    {
      public void Execute(JobExecutionContext context)
      {
       string result = doMyOperation();
       //i'll like to call parent label member of name lblNotif
       //is something like parent.lblNotif.Content = result;
       //possible?
      }

      public string doMyOperation()
      {
        //calling the wermethod to retreive user's balance
       return result = service.GetUsersBalace(user);
      }

    }
}

Ну, кварцевый бит работает, и этот пост не о кварце. вот мои вопросы

Вопрос 1 : Как получить доступ к элементам управления Window2 для instace lable lblNotif?
Вопрос 2 : Если мое мнение об этом неверно, то это считается наилучшей практикой для решения моей проблемы, когда приложение должно выполнять операцию, скажем, каждые 5 минут и обновлять пользовательский интерфейс.
Вопрос 3 : сначала я попытался использовать фонового работника, и мне показалось, что я не могу выполнить бит планирования с ним. Это правильно или я ошибаюсь.

спасибо тем, кто уже прокомментировал, и извините за тех, кто не понял смысл моего поста. Надеюсь, это будет немного понятнее. Спасибо за чтение

Ответы [ 2 ]

1 голос
/ 18 мая 2010

Вы можете использовать для этого удобный класс BackgroundWorker. Для получения дополнительной информации см эта статья

0 голосов
/ 18 мая 2010

Чтобы периодически выполнять операцию в отдельном потоке, используйте System.Timers.Timer. Его событие Elapsed всегда выполняется в новом потоке.

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