Как обновить второе окно нажатием кнопки на первом - PullRequest
0 голосов
/ 01 февраля 2019

Как я могу обновить окно secodn нажатием кнопки в первом окне.

Я новичок в WPF и долго искал, но ответы, которые я нашел, не сработали.Я пытаюсь написать в основном текстовом поле, чтобы оно было размещено во втором окне.Пока что у меня это есть, но я могу работать только с ним, когда использую win1.show ().Это дает новый всплывающий экран с напечатанным текстом, но не на той же странице.Так как я могу получить это вместо всплывающего окна для обновления.

Главное окно:

    Title="MainWindow" Height="1050" Width="1680" ResizeMode="CanResizeWithGrip" Topmost="False" WindowState="Normal" Icon="./Resources/escapehaarlem_logo.ico" >
<Grid Background="Gray">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="1593*"/>
        <ColumnDefinition Width="80*"/>
    </Grid.ColumnDefinitions>
    <Button Content="Verstuur" HorizontalAlignment="Left" Margin="1330,10,0,0" VerticalAlignment="Top" Width="334" Height="85" Grid.ColumnSpan="2" Click="Verstuur_Button_Click"/>
    <Button Content="Verwijder" HorizontalAlignment="Left" Margin="1330,100,0,0" VerticalAlignment="Top" Width="334" Height="85" Grid.ColumnSpan="2" Click="Verwijder_Button_Click_1"/>
    <TextBox Name="Textbox" HorizontalAlignment="Left" Height="1000" Margin="10,10,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="1315"/>
</Grid>

Второе окно:

Title="MainWindow" Height="1050" Width="1680" ResizeMode="NoResize" Topmost="True" WindowState="Maximized" Icon="./Resources/escapehaarlem_logo.ico" >
<Grid Background="Black">
    <Label Name="lbl_Tekst" Content="" HorizontalAlignment="Left" VerticalAlignment="Top" Foreground="White" Height="1020" Width="1673"/>
</Grid>

Код главного окна:

   public partial class MainWindow : Window
{
    string hint = "";
    string verwijder = "";

    Window1 win1 = new Window1();

    public MainWindow()
    {
        InitializeComponent();
        win1.Show();
    }

    private void Verstuur_Button_Click(object sender, RoutedEventArgs e)
    {
        hint = Textbox.Text;
        Window1 win1 = new Window1(hint);
        win1.Show();
    }

    private void Verwijder_Button_Click_1(object sender, RoutedEventArgs e)
    {
        Textbox.Text = verwijder;
        Window1 win1 = new Window1(verwijder);
        win1.Show();
    }
}

Код второго окна:

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
    }
    public Window1(string hint) : this()
    {
        lbl_Tekst.Content = hint;
    }
}

Надеюсь, вы могли бы помочь обновить его вместо нового всплывающего экрана.

1 Ответ

0 голосов
/ 01 февраля 2019

Создайте метод в Window1 классе для обновления метки.
Например:

public void UpdateLabel(string text)
{
    lbl_Tekst.Content = text;
}

Затем вы бы вызвали его из вашего MainWindow следующим образом:

win1.UpdateLabel("I am updated content");  

После этого вы должны обновить содержимое этого ярлыка.Однако я бы посоветовал вам прочитать MvvM и DataContexts, чтобы вам было намного проще манипулировать содержимым элементов пользовательского интерфейса без фактической ссылки на эти элементы.

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