在wpf中,是否可以訪問框架當前頁面的DataContext?如果是,如何?是否可以訪問該框架的當前頁面的DataContext?怎麼樣?
如果不是,我應該使用什麼來替代幀,以便我可以訪問它的DataContext?
如果有事不清楚,請告訴我。
更新:澄清
我有一個MainWindow.xaml
Frame
。我想訪問Frame
中顯示的當前頁面的DataContext
。我們只是說我想顯示當前頁面的ViewModel
的名稱爲的string
屬性標題。 (假設每個頁面」 ViewModel
有標題屬性)
更新:這是我MainWindow.xaml
<Window x:Class="Libertalia.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
.
.
.
DataContext="{Binding Main, Source={StaticResource Locator}}"
>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<Grid>
<Frame Panel.ZIndex="1" x:Name="MainFrame" JournalOwnership="OwnsJournal" NavigationUIVisibility="Hidden" Source="View/BlankPage.xaml" />
</Grid>
</ScrollViewer>
</Window>
頁(只是其中的一個,只是一個樣本)的代碼:
<Page x:Class="Libertalia.View.LoginView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:behaviors="clr-namespace:Libertalia.Behavior"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
.
.
.
DataContext="{Binding Page1, Source={StaticResource Locator}}"
<DockPanel Margin="200" >
</DockPanel>
</Page>
UPDATE:模型,視圖和視圖模型關係
MainWindow.xaml
(查看)綁定到MainViewModel.cs
(ViewModel)。總之,MainWindow.xaml's
DataContext
是MainViewModel.cs
MainWindow.xaml
(查看)具有Frame
Frame
有Page
(查看)。Frame
有許多頁面,一次顯示一個頁面。Page
有自己的視圖模型(DataContext
)
我想做的事:
- 從主窗口(MainViewModel)的
DataContext
DataContext
(的幀)訪問當前頁面」。
您的意思是從View的代碼訪問View的DataContext? –
不,我想從'MainWindow.xaml'('Frame'的父親)訪問頁面的'DataContext'。 – someone
「頁面」是什麼意思? – LordWilmore