Как запустить несколько событий в определенном порядке? - PullRequest
1 голос
/ 02 декабря 2011

Я новичок в c # и у меня есть вопрос о событиях в приложении WPF. У меня есть два события (Button_Click и myslider_ValueChanged) и я хочу, чтобы myslider_ValueChanged запускался после Button_Click. Я пытался использовать EventHandler, но оба события по-прежнему выполняются одновременно. Есть ли более простой способ сделать это, например, вложенным событием? Любая помощь приветствуется, спасибо. Я приложил свою попытку EventHandler ниже.

    namespace program
    {
        public partial class MainWindow : Window
        {

            public event EventHandler _Click;
            public event EventHandler _ValueChanged;

            protected void On_Click(EventArgs e)
            {
                if (_Click != null)
                {
                    _Click(this, e);
                }
            }

            protected void On_ValueChanged(EventArgs e)
            {
                On_Click(EventArgs.Empty);

            }

            private void Initialize()
            {
                _Click += new EventHandler(_Click);
                _ValueChanged += new EventHandler(_ValueChanged);
                _Click += _ValueChanged;
            }


            private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
            {
              //Code here
            }

            private void myslider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
            {
            //Code here
            }

Ответы [ 2 ]

4 голосов
/ 02 декабря 2011

Вам нужно, чтобы myslider_ValueChanged вызывал другой метод для выполнения работы, а затем вызывал этот новый метод из button_click.

Например:

       private void myslider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
           HandleValueSliderChanged();
        }
        private void HandleValueSliderChanged() {
          //Code here
        }

        private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
        {
          //Code here
           HandleValueSliderChanged();
        }
0 голосов
/ 02 декабря 2011

Так что просто установите myslider.IsEnabled = true в событии нажатия кнопки. И установите его в false в методе Initialize раньше.

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