我正在使用WPF对c#应用程序进行编码
我有一个主窗口,其中包含一个名为“SelectionGrid”的网格。这个网格将包含控制用户,我的问题是我想从USER CONTROL本身修改(添加/删除)该网格中的控件用户
例如: SelectionGrid主持用户控件“菜单”在这个菜单中有一个按钮,我想从这个按钮中删除菜单用户控件并在这个SelectionGrid中添加另一个用户控件
主窗口代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
UserControl usc = new Menu();
SelectionGrid.Children.Add(usc);
}}
菜单用户控制代码:
public partial class Menu : UserControl
{
public Menu()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
// want to add Another User Control in SelectionGrid
}
答案 0 :(得分:1)
首先,将您的userControl放在像Grid
这样的容器控件中。然后您可以从usercontrol轻松访问和修改网格,如下所示:
var parent = (Grid)this.Parent;
///do what you want to do with parent
一点知识共享:以下代码可用于访问Page
,UserControl
等控件的父级:
public static T FindParent(DependencyObject child)
{
DependencyObject parentObject = VisualTreeHelper.GetParent(child);
if (parentObject == null)
return null;
T parent = parentObject as T;
if (parent != null)
return parent;
else
return FindParent<T>(parentObject);
}
private void test()
{
ControlTypeHere parent = FindParent<ControlTypeHere>(this);
希望这会有所帮助:)