Auf eine WPF Page von einer anderen aus zugreifen

  • WPF

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Auf eine WPF Page von einer anderen aus zugreifen

    Hallo,

    ich habe eine WPF C# App mit 3 Pages. Zu jedem Zeitpunkt sind immer 2 Pages sichtbar.
    Hier ein Bild von meinem Demo Programm:



    Wie man schon erkennen kann, möchte ich mit dem Button "Change Text" auf Page 1 den Text der TextView auf Page 3 ändern.

    Hier noch einmal die MainWindow.xaml:

    XML-Quellcode

    1. <Grid>
    2. <StackPanel Orientation="Vertical" >
    3. <Grid Background="#FF937BFF">
    4. <Grid.ColumnDefinitions>
    5. <ColumnDefinition Width="1*"/>
    6. <ColumnDefinition Width="1*"/>
    7. </Grid.ColumnDefinitions>
    8. <Button Name="Show_Page1"
    9. Content="Page1"
    10. Grid.Column="0"
    11. Margin="10 5" Click="Show_Page1_Click">
    12. </Button>
    13. <Button Name="Show_Page2"
    14. Content="Page2"
    15. Grid.ColumnSpan="1"
    16. Margin="10 5"
    17. Grid.Column="1" Click="Show_Page2_Click">
    18. </Button>
    19. </Grid>
    20. <Grid>
    21. <Grid.ColumnDefinitions>
    22. <ColumnDefinition Width="2.5*"/>
    23. <ColumnDefinition Width="0.5*"/>
    24. </Grid.ColumnDefinitions>
    25. <Frame Height="290"
    26. Name="MainFrame"
    27. Grid.Column="0"
    28. NavigationUIVisibility="Hidden"/>
    29. <Frame Height="290"
    30. Name="SecondFrame"
    31. Grid.Column="1"
    32. NavigationUIVisibility="Hidden"/>
    33. </Grid>
    34. </StackPanel>
    35. </Grid>


    "SecondFrame" ist hierbei der Container für die Page welche immer sichtbar ist.

    Und die MainWindow.xaml.cs:

    C#-Quellcode

    1. public partial class MainWindow : Window
    2. {
    3. public MainWindow()
    4. {
    5. InitializeComponent();
    6. MainFrame.Content = new Page1();
    7. SecondFrame.Content = new Page_Other();
    8. }
    9. private void Show_Page1_Click(object sender, RoutedEventArgs e)
    10. {
    11. MainFrame.Content = new Page1();
    12. }
    13. private void Show_Page2_Click(object sender, RoutedEventArgs e)
    14. {
    15. MainFrame.Content = new Page2();
    16. }
    17. }


    Damit der Post nun nicht noch länger wird spare ich mir mal den Rest, da man sich wohl eh vorstellen kann was der beinhaltet.
    Bitte bedenkt, dass ich noch nicht all zu erfahren auf dem C# Gebiet bin (Hobby seit ca. 2 Monaten).
    Über Hilfe würde ich mich sehr freuen.

    LG,
    Tom
    In Wpf werden derlei Dinge per Databinding abgewickelt - Stichwort MVVM.
    Das ist ein umfassendes und sehr geniales Konzept, verlangt aber fundierte Grundkenntnisse (und geht total anders, als du's bisher angefangen hast).
    Ich kann dir nur den Tutorial-Bereich "WPF" von vbParadise empfehlen, und hoffen, dass du zumindest mit einigen der dortigen Tuts was anfangen kannst.