我是MVVM新手并使用MVVMLight Toolkit。因此,我正在使用基于Uri的导航发生的项目,该视图在视图上显示为框架x:名称。 这是我的代码..
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;
}
}
如果我们想要导航功能在当前渲染的UserControll上工作哪个是MainWindow的孩子?我们需要执行哪些步骤? 喜欢
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;
}
}
答案 0 :(得分:0)
我通过将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;
}
}