2012-04-13 22 views
8

Trong điều khiển người dùng của tôi, tôi có một nút, khi được nhấp, sẽ tăng sự kiện được định tuyến tùy chỉnh. Tôi đã cố gắng để nâng cao nó, nhưng nó không bị sa thải trong MainWindow.xaml.Làm cách nào để tôi có thể tăng sự kiện được định tuyến tùy chỉnh từ kiểm soát của người dùng?

XAML cho nút trong UserControl:

<Button x:Name="PART_Add" Content="+" Grid.Column="3" Margin="0,0,0,0" Style="{DynamicResource dTranspButton}" Click="btnAdd_Click"/> 

UserControl C# mã:

//AddClick Event 

     public static readonly RoutedEvent AddClickEvent = EventManager.RegisterRoutedEvent("AddClick", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(dCB_Props)); 

     public event RoutedEventHandler AddClick 
     { 
      add { AddHandler(AddClickEvent, value); } 
      remove { RemoveHandler(AddClickEvent, value); } 
     } 

     void RaiseAddClickEvent() 
     {    
      RoutedEventArgs newEventArgs = new RoutedEventArgs(dCB_Props.AddClickEvent); 
     } 

     protected void OnAddClick() 
     { 
      RaiseAddClickEvent(); 
     } 

//objects events 

     private void btnAdd_Click(object sender, System.Windows.RoutedEventArgs e) 
     { 
      RaiseAddClickEvent(); 
     } 

XAML Mã cho UserControl Instance trong MainWindow.xaml:

<local:dCB_Props x:Name="cb1" Margin="41.166,0,36.19,25" VerticalAlignment="Bottom" Height="30" Width="141" AddClick="dCB_Props_AddClick"> 
    <local:dCB_Props.Items> 
     <ComboBoxItem Content="item1"/> 
    </local:dCB_Props.Items> 
</local:dCB_Props> 

C# Mã mà sẽ bị sa thải trong MainWindow.xaml.cs:

private void dCB_Props_AddClick(object sender, System.Windows.RoutedEventArgs e) 
{ 
    MessageBox.Show("This Works"); 
} 

Trả lời

16

Bạn cần phải gọi

RaiseEvent(new RoutedEventArgs(AddClickEvent)); 
+0

Cảm ơn. Tôi nghĩ tôi được gọi là 'RaiseAddClickEvent() '. –

+3

Đó là những gì RaiseAddClickEvent() nên làm thực sự. –

Các vấn đề liên quan