2017-09-15 83 views
0

我已經創建了一個usercontrol(命名爲UCDataGrid),我想在運行時添加到我的主窗口。WPF c#如何添加一個用戶控件面板的動態,從UC到面板的氣泡/隧道

在MainWindow.xaml.cs:

private void GetAnotherUserControl(string sUCName) 
{ 
    var UC_Grid = new UCDataGrid(); 

    ... 

    // Add to 'PositioningGrid' Grid Layout 
    PositioningGrid.Children.Add(UC_Grid); 

    // Register UC_Grid Name 
    PositioningGrid.RegisterName(sUCName, UC_Grid); 

    ... 
} 

在MainWindow.XAML [結構]:

Grid (named 「TopGrid」) -> Grid (named 「PostioningGrid」) 

PositioningGrid將保持兒童控制/用戶控件我開發其將被動態地添加在運行時取決於業務規則。

通過以這種方式添加我的用戶控件,當我點擊動態添加的用戶控件中的複選框時,如何進行冒泡/隧道操作?

我想單擊我的usercontrol(UCDataGrid)中的複選框並從我的MainWindow運行代碼。

我已經嘗試了幾種方法,但想知道是否有某種方式通知我的MainWindow用戶已經點擊了複選框。

回答

0

的窗口句柄CheckBox.Checked路由事件:

<Window x:Class="WpfApplication1.Window1" 
     ... 
     Title="Window7" Height="300" Width="300" CheckBox.Checked="Window_Checked"> 

或者:

this.AddHandler(CheckBox.CheckedEvent, new RoutedEventHandler(Window_Checked)); 

Checked事件會冒泡從CheckBox父窗口。