C# 主窗口中的按钮执行UserControl1中的方法

C# 主窗口中的按钮执行UserControl1中的方法,c#,wpf,methods,user-controls,C#,Wpf,Methods,User Controls,我对编程非常陌生,我似乎无法理解这一点,用更多的信息重新发布。 我拥有的是一个主窗口以及一个作为子窗口添加到主窗口中的UserControl。当我按下主窗口中的一个按钮时,我希望它调用UserControl中的一个方法,这个方法将隐藏一个网格。这就是我现在拥有的 //mainwindow private void Button1_Click(object sender, RoutedEventArgs e) { UserControl2 uc = new UserControl2();

我对编程非常陌生,我似乎无法理解这一点,用更多的信息重新发布。 我拥有的是一个主窗口以及一个作为子窗口添加到主窗口中的UserControl。当我按下主窗口中的一个按钮时,我希望它调用UserControl中的一个方法,这个方法将隐藏一个网格。这就是我现在拥有的

//mainwindow
private void Button1_Click(object sender, RoutedEventArgs e)
{
    UserControl2 uc = new UserControl2();
    uc.MyMethod();
}


//usercontrol1
public void MyMethod()
{
    grid1.Visibility = Visibility.Hidden;
}

我没有显示错误,但它并没有隐藏网格。

不管您可能应该使用
MVVM
,您就快到了

主窗口

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition></RowDefinition>
    </Grid.RowDefinitions>
    <local:UserControl2 x:Name="MyControl"></local:UserControl2>
    <Button Click="ButtonBase_OnClick" Width="100" Grid.Row="1">Click me</Button>
</Grid>
用户控制

<Grid x:Name="MyGrid">
       <Label> I want to hide</Label> 
</Grid>

单击之前

单击后


不管您可能应该使用
MVVM
这一事实,您就快成功了

主窗口

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition></RowDefinition>
    </Grid.RowDefinitions>
    <local:UserControl2 x:Name="MyControl"></local:UserControl2>
    <Button Click="ButtonBase_OnClick" Width="100" Grid.Row="1">Click me</Button>
</Grid>
用户控制

<Grid x:Name="MyGrid">
       <Label> I want to hide</Label> 
</Grid>

单击之前

单击后