如何将窗口和字符串参数从代码后面传递到用户控件
本文关键字:控件 用户 代码 窗口 参数 字符串 | 更新日期: 2023-09-27 17:59:16
我有一个有点偏离的标题,我需要对一些文件进行全局设置,所以我制作了一个用户控件(我不能使用主窗口,因为这不是所有文件的全局设置)。但是,我的用户控件需要两个参数,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的新手。
要访问应用程序的主窗口,您应该获得它的运行实例,如下所示:
MainWindow myRunnningMainWindow = (Application.Current.MainWindow as MainWindow);
if(myRunningWindow!=null)
{
//Do what you want with the main window
}