Как я могу запустить DispatcherTimer, когда мой пользовательский элемент управления загружен? - PullRequest
0 голосов
/ 01 сентября 2010

Мне нужно иметь возможность запустить таймер при загрузке моего пользовательского элемента управления. Однако мне нужно иметь возможность сделать это в абстрактном классе, от которого наследуются все элементы управления этого типа.

Ответы [ 3 ]

1 голос
/ 01 сентября 2010

Элемент управления имеет событие Loaded, к которому вы можете присоединиться в своем абстрактном базовом классе, чтобы запустить таймер.

// in ctor of abstract control
_timer = new DispatcherTimer(...);
Loaded += (s,e) => _timer.Start();
0 голосов
/ 01 сентября 2010

Вы имеете в виду элемент управления как абстрактный? Как ниже?
Попробуйте следующее:

public partial class MainWindow : Window
{
    MyControl mycontrol;

    public MainWindow()
    {
        InitializeComponent();

        //// Your logics...

        mycontrol.Dispatcher.BeginInvoke((Action)(() =>
            {
                 /// Try invoking timer here...
            }));
    } 
}

public abstract class MyControl: Control
{

}

НТН

0 голосов
/ 01 сентября 2010

Не уверен, в чем твоя проблема?В .NET доступно три таймера, и вы, вероятно, сможете использовать любой из них.Проверьте эту статью, чтобы понять варианты и различия между ними.

...