[英]How to get WPF UserControl's Parent Page in C#?
我在類型Page
(而不是Window
)的uCtrl
具有UserControl
類型的parentPg
。 我想在uCtrl
類中訪問該parentPg
,以便可以將某些uCtrl
的屬性綁定到parentPg
的Control
。
就像我們遇到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;
}
}
}
}
在上面的代碼片段,我得到父Window
(即類型的pWin
中) uCtrl
類型的UserControl
,然后設置其Property
(即IsPrptReady
基於父母窗口的) Control
,即txt
類型“文本框”的。
我想做同樣的事情,但是在Page
不是Window
情況下。 我已經看到了很多的問題,像這樣 ,但沒有解決我的問題。 任何幫助將不勝感激。
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>
您鏈接到的問題的第二個答案提供了您需要的答案; 專門使用VisualTreeHelper。
或者,您可以向[Page]類型的用戶控件添加[dependency]屬性,並將該屬性綁定到該控件所在的頁面實例。 就像是:
<Page x:Name="page">
<local:UCtrl Page="{Binding ElementName=page}"/>
</Page>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.