【问题标题】:How to get Current Rendered UserControls In MainWindow as a Child?如何在 MainWindow 中作为子级获取当前渲染用户控件?
【发布时间】:2016-09-23 17:04:54
【问题描述】:

我是 MVVM 新手并使用 MVVMLight Toolkit。因此,我正在开发使用基于 Uri 进行导航的项目,该 Uri 在 View 上以 x:Name 公开的 Frame 上设置。 这是我的代码..

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;      
     }
 }

【问题讨论】:

    标签: c# wpf mvvm user-controls navigation


    【解决方案1】:

    我通过将 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;
             }           
         }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      相关资源
      最近更新 更多