我创建了一个usercontrol(名为UCDataGrid
),我希望在运行时将其添加到主窗口。
在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中的复选框时,如何进行冒泡/隧道传输?
我想点击usercontrol(UCDataGrid
)中的复选框,然后从我的MainWindow运行代码。
我尝试了几种方法,但想知道是否有办法通知我的MainWindow用户点击了复选框。
答案 0 :(得分: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
冒泡到父窗口。