2013-04-17 2 views
0

Извините, потому что я вижу другой вопрос, но оба из них. и вопросы. не хватает How can I raise a parent event from a user control in WPF?Поднять событие в пользовательском управлении до MainWindow

ясно В моем MainWindow.xaml, я имел право Панели

<local:RightSideContent x:Name="RightPanel" Grid.Column="1"> 

Таким образом, в MainWindow.xaml.cs, если я хочу подняться событием на эту панель, я сделал такой код:

public delegate void Event1(); 
public MainWindow() 
{ 
    this.InitializeComponent(); 
    Event1 obj = new Event1(this.RightPanel.func); 
    obj(); 
    // Insert code required on object creation below this point.   
} 

А в классе RightPanel, я объявляю функция FUNC

Вопрос: если я в классе RightPanel, как я поднимаю событие в MainWindow, потому что я не могу написать что-то вроде этого. RightPanel.func .....

И, кстати, я в другом классе, у которого нет файла xaml, если я хочу поднять событие в UserControl, как я могу это сделать?

+0

Это только событие, которое я определяю, см. Код MainWindow.xaml.cs! Sr, я нажимаю кнопку «Редактировать», а не добавляю комментарий :( – duykhoa

+0

Взгляните на эту [страницу MSDN при создании настраиваемых маршрутизированных событий] (http://msdn.microsoft.com/en-us/library/ms752288.aspx) –

ответ

2

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

  1. Вы пытаетесь вызвать событие MainWindow из некоторого кода, который не находится в MainWindow. В этом случае вам нужно убедиться, что у вас есть ссылка на MainWindow, и что в MainWindow есть общедоступный метод, который инициирует это событие.

  2. Вы хотите, чтобы MainWindow обрабатывал клик и т. Д., Который поступает из RightPanel. В этом случае вы просто помещаете в свой MainWindow атрибут Button.Click = "blah" (или что бы то ни было), и он будет захватывать любые нажатия кнопок ниже, которые не обрабатываются ниже. Фактически вы можете даже обрабатывать его ниже и следить за тем, чтобы вы установили EventArgs, чтобы он был эффективно необработанным, чтобы затем вы могли обрабатывать его выше.

  3. Вы хотите иметь возможность обрабатывать настраиваемое событие, сгенерированное в RightPanel, аналогично тому, как вы могли бы щелкнуть по сценарию кнопки из пункта 2 выше. В этом случае я бы направил вас к http://msdn.microsoft.com/en-us/library/ms742806.aspx, который является документацией для маршрутизированных событий в WPF, и вы должны иметь возможность разработать, как создать свой собственный RoutedEvent.