gpt4 book ai didi

c# - 设置框架数据上下文

转载 作者:行者123 更新时间:2023-12-03 10:46:34 25 4
gpt4 key购买 nike

我的 WPF 窗口应该能够在窗口的同一位置加载不同的控件;这应该是完成该任务的框架。
因此,我试图通过编辑包含 Frames 源的数据绑定(bind)字符串来使框架加载不同的页面。我已经设法做到了,但是目前我不知道如何将帧数据共享到托管帧的 Windows View 模型。

我正在使用 MVVM 并且我认为如果我还可以将“ View 模型”数据绑定(bind)到框架数据上下文,那么我可以选择加载哪个页面以及页面应该使用哪个数据上下文,所有这些都来自主机窗口,因此可以访问它。
下面是我的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>

但是,如果我现在通过此绑定(bind)而不是在后面的代码中分配页面数据上下文,则不会加载任何内容。现在我基本上以一个空白帧结束。
为什么?

最佳答案

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

<Window x:Class="View.Window"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:WindowClass="clr-namespace:WindowClass"
Title="Window" Height="300" Width="300">
<Window.Resources>
<WindowClass:MyViewModelName/>
</Window.Resources>

<Grid>
<Frame NavigationUIVisibility="Hidden" DataContext={Binding} Source="{Binding FrameURI}"/>
</Grid>

你可以找到一个非常基础的教程 here

关于c# - 设置框架数据上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23596800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com