c# - 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;
}
我没有显示错误,但它没有隐藏网格。
解决方案
忽略您可能应该使用的事实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;
}
点击前
点击后
推荐阅读
- django - 如何使用 django orm 进行嵌套 Group By?
- python - Python字符串格式化中的冒号是什么意思?
- javascript - 对具有大属性的记录进行 API 调用的最佳方法是什么?
- reactjs - webpack获取未在浏览器上转译的源文件
- excel - 如何使用 VBA 从 Excel 中复制和粘贴所选内容,仅适用于包含值而不是公式的单元格
- javascript - 如何在javascript中检测2个按钮是否一个接一个地被点击?
- webdriver - webdriver-io 在 chrome 中发送用户和密码代理弹出窗口
- javascript - 为什么 vscode 在 Typescript 和 Javascript 中的扩展运算符和变量名之间添加空格?
- jquery-select2 - select2(vue 3)设置多个默认值
- flutter - 如何对 USB 设备执行串行写入