我有点关闭标题,我需要全局到几个文件,所以我已经建立了一个用户控件(我不能使用主窗口,因为这不是所有文件的全局)但是&#&# 39;我的用户控制需要的两个参数,ScreenName
和MainWindow
来导航主页按钮单击。这是我到目前为止所尝试的:
public Header(MainWindow mainWindow, string screenName)
{
InitializeComponent();
DataContext = this;
ScreenName = screenName;
MainWindow = mainWindow;
ScreenNameTextBlock.Text = ScreenName;
}
public string ScreenName { get; set; }
public MainWindow MainWindow { get; set; }
private void Hyperlink_OnClick(object sender, RoutedEventArgs e)
{
//need to navigate home here
MainWindow.LoadScreenByCode("Menu");
}
您可以假设相应的XAML,因为它只是一个超链接和一个文本块,但如果您需要它,请告诉我。
我可以像这样包含用户控件:
<controls:Header x:Name="Header"></controls:Header>
但我无法弄清楚如何分配参数。如果我尝试代码隐藏,我可以访问这样的值:
Header.MainWindow = Shell;
Header.ScreenName = "Name";
但是这会导致值为null。很抱歉,如果这是一个简单的问题,我是UserControls的新用户。
答案 0 :(得分:1)
要访问应用程序的主窗口,您应该按以下方式获取它的运行实例:
MainWindow myRunnningMainWindow = (Application.Current.MainWindow as MainWindow);
if(myRunningWindow!=null)
{
//Do what you want with the main window
}