2017-02-06 8 views
0

私のUWPプロジェクトには2ページあります。ユニバーサルWindows:別のページの要素にアクセスするには?

次のページでは、WebViewオブジェクトをアナウンスします。

<Page 
    x:Class="UniversalMarkdownTestApp.WebViewPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:UniversalMarkdownTestApp" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d"> 

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*" /> 
     </Grid.RowDefinitions> 

     <WebView Name="WebContent" Grid.Row="0" x:FieldModifier="public"/> 
    </Grid> 
</Page> 

他のページでこのオブジェクトにアクセスします。どうすればこれを達成できますか?

+0

WebViewPage.WebContent経由でアクセスしようとしましたが、このページのインスタンスを作成する必要があります。 – AbsoluteSith

答えて

0

次のコードによって、他のページでは、このオブジェクトにアクセスできます。

MainPage mainpage = new MainPage(); 
var webv = mainpage.WebContent; 

しかしAbsoluteSithでは、新しいページに追加したい場合は、あなたができなかった、このオブジェクトのインスタンスが作成されている、と述べたように直接追加してください。

このオブジェクトのプロパティ値を使用して新しいオブジェクトを作成する必要があります。次のコードを参照してください:

MainPage mainpage = new MainPage(); 
var webv = mainpage.WebContent; 

WebView wv = new WebView(); 
wv.Source = webv.Source; 
grid.Children.Add(wv); 

他のページでオブジェクトを取得する別の方法があります。ナビゲートするときにオブジェクトをパラメータとして渡すことができます。あなたはこれをしたい理由は、私はまだわからない、ここで

rootFrame.Navigate(typeof(BlankPage),WebContent); 
protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    WebView wv = new WebView(); 
    wv.Source = ((WebView)e.Parameter).Source; 
    gd.Children.Add(wv); 
} 

:次のコードを参照してください。一般的に、私はページ間のコントロールを得ることを提案しません。たぶん、あなたが私たちにあなたの要件、またはどのような効果を達成したいのかを伝えることができれば、もっと良い解決策があるかもしれません。

+0

ありがとうございます!提案に続いて、私は他のページのオブジェクトへのアクセスを断念し、必要なパラメータを他のページに渡して実装しようとします。 –

関連する問題