uCtrl
类型为UserControl
{而不是parentPg
,Page
类型为Window
。我想访问parentPg
类uCtrl
中的uCtrl
,以便将parentPg
的{{1}}属性绑定到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
的{{1}}中获得了父uCtrl
(即类型UserControl
),然后设置了其Property
(即IsPrptReady
)基于父母窗口的Control
即txt
类型' TextBox'。
我想做同样的事情,但是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>
答案 0 :(得分:1)
您链接的问题中的second answer提供了您需要的答案;特别是使用VisualTreeHelper。
或者,您可以将[dependency]属性添加到类型为Page的用户控件,并将该属性绑定到控件所在的页面实例。类似的东西:
<Page x:Name="page">
<local:UCtrl Page="{Binding ElementName=page}"/>
</Page>