首页 > 解决方案 > MainWindow 中的按钮执行 UserControl1 中的方法

问题描述

我对编程很陌生,我似乎无法弄清楚这一点,并重新发布了一些更多信息。我所拥有的是一个 MainWindow 以及一个作为孩子添加到 MainWindow 中的 UserControl。当我在 MainWindow 中按下一个按钮时,我希望它调用 UserControl 中的一个方法,该方法将隐藏一个网格。这就是我现在所拥有的...

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


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

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

标签: c#wpfmethodsuser-controls

解决方案


忽略您可能应该使用的事实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>

代码背后

private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
   MyControl.Method();
}

用户控制

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

代码背后

public void Method()
{
    MyGrid.Visibility = Visibility.Hidden;
}

点击前

在此处输入图像描述

点击后

在此处输入图像描述


推荐阅读