Кнопка в MainWindow выполняет метод в UserControl1 - PullRequest
2 голосов
/ 02 августа 2020

Я новичок в программировании и, кажется, не могу понять этого, перепубликую это с некоторой дополнительной информацией. У меня есть MainWindow, а также UserControl, добавленный в MainWindow в качестве дочернего элемента. Когда я нажимаю кнопку в 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;
}

У меня нет ошибок, но он не скрывает сетку.

1 Ответ

1 голос
/ 02 августа 2020

Не обращая внимания на тот факт, что вы, вероятно, должны использовать MVVM, вы почти у цели.

MainWindow

<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>

Code Behind

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

UserControl

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

Код позади

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

Перед кликом

enter image description here

After Click

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...