powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Помогите разобраться с событием
25 сообщений из 31, страница 1 из 2
Помогите разобраться с событием
    #37730700
avm2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Не могу понять логику работы события в Silverlight.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
namespace SilverlightApplication1
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();

            //
            datePicker1.SelectedDateChanged -= datePicker1_SelectedDateChanged;
            datePicker1.SelectedDate = DateTime.Today;
            datePicker1.SelectedDateChanged += datePicker1_SelectedDateChanged;
        }

        private void datePicker1_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
        {
            MessageBox.Show("datePicker1_SelectedDateChanged");
        }
    }
}



Я меняю дату в DatePicker, перед этим отключив обработчик, затем включаю, но обработчик показывает изменение и появляется MessageBox.
То есть получается обработка события происходит после установки значения. Как сделать чтобы синхронно код выполнялся.
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37730758
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avm2,

разверните свою мысль.

вы пробовали перевести в гугле:
авторSelected Date Changed
?

это как раз означает "Выбранная Дата Изменена" именно в прошедшем времени!
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37730794
avm2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я отключил событие, произвел изменение и включил событие. Почему событие сработало?
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37730856
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avm2,

а вы не обратили внимание ГДЕ вы это делаете?
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37730935
avm2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уТКа,

В конструкторе, в реальном примере это происходит позже, но сути это не меняет.
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37731131
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avm2,

Дело не в событии. В WPF такого не наблюдается.
Видимо, глючен DatePicker из тулкита.
Но это поправимо.

уТКа,

Задание SelectedDate в обработчике UserControl.Loaded проблему не решает.
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37731772
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmatic,

вы точно поняли что хочет автор?

смотрите:
авторКак сделать чтобы синхронно код выполнялся?

это + еще один человек который не понимает, что Silverlight работает Асинхронно!
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37732089
Не верю. Пример в студию.

Вы уверены что именно из-за вас срабатывает событие? После строчки datePicker1.SelectedDate = DateTime.Today срабатывает брейкпоинт в обработчике события?
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37732094
Точнее код в студию.
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37732571
avm2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код. Silverlight 4, VS 2010
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37732641
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avm2,

ну и чего тут не понятного?

SelectedDate это свойство, которое инициализируется после загрузки контрола, а т.к. на этапе инициализации формы на контрол вы подписали событие, выскакивает MessageBox.

возьмите исходники и посмотрите жизненный цикл этого контрола.
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37733292
avm2,

После datePicker1.SelectedDate = DateTime.Today; событие не срабатывает. Топик не о чем.
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37733476
avm2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Руки-крюки_,

Срабатывает, скачайте тестовый проект
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37733572
avm2,

Да ну?

Видео - http://screencast.com/t/8jalALvg
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37733606
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руки-крюки_,

Мда.

avm2Я меняю дату в DatePicker, перед этим отключив обработчик, затем включаю , но обработчик показывает изменение и появляется MessageBox.

Мне кажется, или у вас в видео точно также вообще-то.. )))
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37735406
Lelouch,

Еще как кажется.
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37735767
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руки-крюки_Lelouch,

Еще как кажется.

Т.е. на видео после выполнения строки
Код: c#
1.
datePicker1.SelectedDateChanged += datePicker1_SelectedDateChanged;


входа в
Код: c#
1.
private void datePicker1_SelectedDateChanged(object sender, SelectionChangedEventArgs e)


Совсем не происходит и месседжбокс с текстом "datePicker1_SelectedDateChanged" на экране не появляется?!
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37735924
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexxxxx,

появляется.
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37735926
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руки-крюки_,

угу, только вам.. После того как вы нажимаете "продолжить", у вас запускается обработчик события.
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37735932
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

Вот и я о том. А Руки-крюки_, как я понял, утверждает что "После datePicker1.SelectedDate = DateTime.Today; событие не срабатывает. Топик не о чем." Так что же происходит на видео, как не вызов обработчика события, которое "не срабатывает"?!
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37735940
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexxxxx,

так оно именно в тот момент и не срабатывает XD Так что в этом он прав, правда топик вообще не об этом)))
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37736178
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchLexxxxx, так оно именно в тот момент и не срабатывает XD Так что в этом он прав, правда топик вообще не об этом)))
Оно срабатывает сразу после выполнения
Код: c#
1.
datePicker1.SelectedDateChanged += datePicker1_SelectedDateChanged;


и мне вот не понятно почему. Тут были какие-то намеки на асинхронность, но толком так никто и не пояснил. Мне вот кажется странным, почему после подписки подписчик получил уведомление о событии, которое произошло до подписки на событие?
Более того, если написать:
Код: c#
1.
2.
3.
4.
5.
6.
datePicker1.SelectedDateChanged -= datePicker1_SelectedDateChanged;
datePicker1.SelectedDate = DateTime.Today;
datePicker1.SelectedDate = DateTime.Today + new TimeSpan(500);
datePicker1.SelectedDate = DateTime.Today + new TimeSpan(1000);
datePicker1.SelectedDate = DateTime.Today + new TimeSpan(1500);
datePicker1.SelectedDateChanged += datePicker1_SelectedDateChanged;


то мы получим наш мессаджбокс четыре раза. Почему так?
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37736288
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexxxxx,

этот контрол из wpf toolkit?
если да, то посмотри просто исходники контрола и все.
хотя можно и поиграть в игру на лучший горосков для этого контрола :) вижу тут вам это нравиться.
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37736533
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK,

это контрол из Silverlight))
...
Рейтинг: 0 / 0
Помогите разобраться с событием
    #37736678
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchAlexeiK,

это контрол из Silverlight))
я имел ввиду silverlight toolkit.

И он оттуда.
Просто посмотри в программах у себя, там sl toolkit установлен.

Но твой вопрос , автор, я не понял.

У тебя в xaml есть подписка на событие.
Дальше в коде ты убираешь ее. изменяешь значение элемента.
Восстанавливаешь подписку.

И задаешь вопрос, почему сработала подписка?

ответ:
Потому, что теперь в wpf у разного кода, разные приоритеты выполнения.
Заметил наверное, что когда идешь в дебаге, и происходит установка selecteddate и проходишь подписку на событие, то ничего не происходит?



Вот можешь посмотреть исходник: -> для справки.
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Помогите разобраться с событием
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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