如何在主窗口中获得当前渲染的用户控件作为子控件
本文关键字:控件 用户 窗口 | 更新日期: 2023-09-27 18:08:44
我是MVVM和使用MVVMLight工具包的新手。因此,我正在研究一个项目,在这个项目中,导航发生在基于Uri的地方,该Uri设置在视图上暴露为x:Name的框架上。这是我的代码…
public virtual void SetFrame(Uri userControll, string FrameElementName)
{
var mainWindow = Application.Current.MainWindow;
var frame = mainWindow.FindName(FrameElementName) as Frame;
if (frame != null)
{
frame.Source = userControll;
}
}
如果我们想让导航功能在当前渲染的usercontrol上工作,它是主窗口的子控件?我们需要执行哪些步骤?像
public virtual void SetFrame(Uri anotherUserControll, string FrameElementName)
{
var userControl= // what to do to get Currently rendered Usercontroll as child of MainWindow?
var frame = userControl.FindName(FrameElementName) as Frame;
if (frame != null)
{
frame.Source = anotherUserControll;
}
}
我通过cast Frame解决了这个问题。Context作为UserControl来获取当前渲染的UserControl..
public virtual void SetFrame(Uri anotherUserControll, string FrameElementName)
{
var mainFrame =(Frame)Application.Current.MainWindow.FindName("MainFrame");
var userControll = mainFrame.Content as UserControl;
var frame = userControll.FindName(contentControll) as Frame;
if (frame != null)
{
frame.Source = anotherUserControll;
}
}