2016-10-22 54 views
0

私はPageparentPgWindowの代わりに)タイプUserControluCtrlを持っています。そしてのプロパティをparentPgControlにバインドできるように、クラスのparentPgにアクセスしたいと思います。C#でWPF UserControlの親ページを取得するには?

Windowの場合と同様です。上記のコードで

public partial class uCtrl : UserControl 
{ 
    Window parentWin; 

    public uCtrl() 
    { 
     parentWin = Window.GetWindow(this); 
    } 

    public bool IsPrptReady 
    { 
     get 
     { 
      //accesing parent Window's control 

      if (((pWin)(parentWin)).txt.Text != "") 
      { 
       return true; 
      } 
      else 
      { 
       return false; 
      } 
     } 
    } 
} 

、私はタイプUserControluCtrlに(すなわちタイプpWinの)親Windowを取得し、その後両親ウィンドウのControlすなわちタイプのtxt「テキストボックス」に基づいてそのProperty(すなわちIsPrptReady)を設定しています。

同じことをしたいですが、Pageの場合は、Windowではありません。 私はthisのような多くの質問を見ましたが、何も私の問題を解決しません。 助けていただければ幸いです。

XAMLコードは以下のとおりです。あなたが必要な答えを提供するためにリンクされ問題になっている

<Page x:Class="Stego.Pages.EnDeCoding" 
     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:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:local="clr-namespace:Test" 
     xmlns:userControls="clr-namespace:Test.UserControls" 
     mc:Ignorable="d" 
     d:DesignHeight="600" d:DesignWidth="800" 
     > 
     <Grid> 
      <userControls:uCtrl x:Name="uCtrlName"/> 
     </Grid> 
</Page> 

答えて

1

second answer。具体的にはVisualTreeHelperの使用。

また、[種類]ページのユーザーコントロールに[dependency]プロパティを追加し、コントロールがホストされているページインスタンスにプロパティをバインドすることもできます。何かが好き:

<Page x:Name="page"> 
    <local:UCtrl Page="{Binding ElementName=page}"/> 
</Page> 
+0

私はその答えを見て、私の解決策が見つかりませんでした。 @ibebbsあなたは私の要件に応じてコードC#を共有していただけますか? –

+0

この解決法は機能しません。 –

関連する問題