I have a frame inside mainwindow, inside it there\'s a page with panels and various contents. The mainwindow decides wich page to load, and then must interact with their content
OK. So first, I think you might be going about this the wrong way to start. Check out this project. http://www.wpfsharp.com/2011/04/05/navigation-and-pages-using-model-view-viewmodel-mvvm/
Try this example:
MainWindow.xaml
MainWindow.xaml.cs
using System;
using System.Windows;
using System.Windows.Controls;
namespace Test
{
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
var a = MainFrame.Content as Page;
var grid = a.Content as Grid;
var textBlock = grid.Children[0];
// bla bla, you logged in
MainFrame.Source = new Uri("/Home.xaml", UriKind.Relative);
var b = MainFrame.Content as Page; // Still Login.xaml
MainFrame.ContentRendered +=MainFrame_ContentRendered;
}
private void MainFrame_ContentRendered(object sender, EventArgs e)
{
var b = MainFrame.Content as Page; // Is now Home.xaml
}
}
}
Login.xaml
This is a sample login page.