Добавление событий в динамически генерируемые элементы WPF - PullRequest
0 голосов
/ 24 марта 2011

У меня есть несколько элементов Border с содержимым внутри, которое генерируется во время выполнения. Мне удалось их породить, но теперь я хочу связать с ними такие события, как MouseEnter, Click и т. Д., Но я не знаю как. Мне удалось связать каждый элемент Border с уникальным именем (свойство Name), чтобы я мог работать с ними, если мне когда-нибудь понадобится. Как добавить события в каждый из сгенерированных элементов Border в C #?

Ответы [ 2 ]

2 голосов
/ 24 марта 2011

Используйте вот так

 border.MouseEnter += new MouseEventHandler(border_MouseEnter);

void border_MouseEnter(object sender, MouseEventArgs e)
 {
   throw new NotImplementedException();
 }
1 голос
/ 24 марта 2011
 <Style x:Key="BorderNameStyle" TargetType="{x:Type BorderName}">
                <EventSetter Event="MouseEnter" Handler="itm_MouseEnter"></EventSetter>
                <EventSetter Event="MouseLeftButtonUp" Handler="itm_MouseLeftButtonUp"></EventSetter>
                <EventSetter Event="PreviewMouseRightButtonUp" Handler="itm_MouseRightButtonUp"></EventSetter>
                <EventSetter Event="MouseLeave"  Handler="itm_MouseLeave"></EventSetter>
                <EventSetter Event="MouseDoubleClick" Handler="ItemMouseDoubleClick"></EventSetter>
</Style>

Определяя стили для Границы или кода позади, вы должны вызывать перенаправленные события, как показано ниже.

    border.MouseEnter += new MouseEventHandler(border_MouseEnter);

    void border_MouseEnter(object sender, MouseEventArgs e)
     {
        Button btn = new Button();
        btn.Click += new RoutedEventHandler(btn_Click);
     }
    void btn_Click(object sender, RoutedEventArgs e)
    {
        throw new NotImplementedException();
    }
...