设置帧datacontext

时间:2014-05-11 19:12:48

标签: c# wpf xaml mvvm

我试图让WPF窗口能够加载到窗口上相同位置的不同控件中。我的判断是框架很好地完成了这项任务。如果我错了,请纠正我。

所以我试图通过编辑包含Frames源的数据绑定字符串来使帧加载不同的页面。我已设法做到这一点,但目前我不知道如何将帧数据共享到托管框架的Windows视图模型。 我正在使用MVVM而且我认为如果我还可以数据绑定一个" viewmodel"在frame datacontext中,我可以选择加载哪个页面以及页面应该使用哪个datacontext,所有这些都来自主机窗口,因此可以访问它。

下面是我的xaml。

<Window x:Class="View.Window"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window" Height="300" Width="300">
<Grid>
    <Frame NavigationUIVisibility="Hidden" DataContext="{Binding WindowClass.DataContext}" Source="{Binding WindowClass.FrameURI}"/>
</Grid>

但是,如果我现在通过此绑定分配页面datacontext,而不是在后面的代码中,则不会加载任何内容。现在我基本上得到了一个空白框架。

如果有人愿意提供一个例子或参考解释正确/正确的方法,请满足我对知识的渴望!

先谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用Window.Resources绑定到DataContext,然后绑定到FrameURI(您需要修复相应的namespace而不是我的自定义{{} 1}}):

xmlns:WindowClass

您可以找到一个非常基本的教程here