PDA

View Full Version : سوال: اضافه كردن Event به يك User Control در WPF



davoodrm666_666
یک شنبه 14 آذر 1389, 09:57 صبح
سلام
آقا من يك User Contorl دارم كه داخل اون يك Button هست من مي خوام وقتي روي اون button دوبار كليك كردم
يك event توي Windowي كه اون User control رو بهش اضافه كردم فعال بشه چطور اين كار رو انجام بدم

davoodrm666_666
یک شنبه 14 آذر 1389, 18:38 عصر
خودم فهمیدم



<USERCONTROL xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Width="200" Height="60" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="AddCustomEventUserControl.CustomUserControl">
2. <GRID>
3. <BUTTON Width="75" Height="23" Click="button1_Click" x:Name="button1">Button</BUTTON>
4. </GRID>
5.</USERCONTROL>

Code Behind


01.public partial class CustomUserControl : UserControl
02.{
03. public static readonly RoutedEvent ButtonClickEvent = EventManager.RegisterRoutedEvent(
04. "ButtonClick", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(CustomUserControl));
05.
06. public event RoutedEventHandler ButtonClick
07. {
08. add { AddHandler(ButtonClickEvent, value); }
09. remove { RemoveHandler(ButtonClickEvent, value); }
10. }
11.
12. public CustomUserControl()
13. {
14. InitializeComponent();
15. }
16.
17. private void button1_Click(object sender, RoutedEventArgs e)
18. {
19. RaiseEvent(new RoutedEventArgs(ButtonClickEvent));
20. }
21.}


حالا از این User Control هرجا که خواستید استفاده کنید.


1.<WINDOW title=Window1 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Width="300" Height="300" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="AddCustomEventUserControl.Window1" xmlns:local="clr-namespace:AddCustomEventUserControl">
2. <GRID>
3. <LOCAL:CUSTOMUSERCONTROL ButtonClick="CustomUserControl_ButtonClick"></LOCAL:CUSTOMUSERCONTROL>
4. </GRID>
5.</WINDOW

Codebehind


01.public partial class Window1 : Window
02.{
03. public Window1()
04. {
05. InitializeComponent();
06. }
07.
08. private void CustomUserControl_ButtonClick(object sender, RoutedEventArgs e)
09. {
10. MessageBox.Show("Inner Button Clicked!!");
11. }
12.}

Parham.D
چهارشنبه 04 مرداد 1391, 06:54 صبح
شما فرمودید با دوباره کلیک event اجرا بشه. دوبار کلیک چطور بررسی میشه؟! ممنون