"BASE"라는 Silverlight 사용자 지정 컨트롤이 있습니다. 이 클래스에서 상속받은 또 다른 컨트롤 인 "CHILD1"이 있습니다. BASE에는 CHILD1 컨트롤의 내용을 보유하는 ContentPresenter가 있습니다. CHILD1 컨트롤의 내용에있는 TextBox에 액세스해야합니다. 즉, 초기화되고 표시되지만 코드에서 항상 null입니다.Silverlight 3 컨트롤을 상속하면 내용이 초기화되지 않습니다.
콘텐츠 컨트롤의 children 컬렉션을 반복하는 대신 이러한 컨트롤에 직접 액세스 할 수 있습니까?
감사합니다.
자식 1 :
<ContentPresenter Grid.Row="1"
x:Name="cprContent"
Content="" />
기본 클래스 코드 : BASE의
<local:BASE x:Class="CWTest1.CHILD1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:local="clr-namespace:CWTest"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400"
Height="300">
<Grid x:Name="LayoutRoot2"
Background="White">
<TextBox x:Name="tbx1"
Text="xx" />
</Grid>
public partial class CHILD1 : BASE
{
public CHILD1()
{
InitializeComponent();
// this.tbx1 is always null
this.tbx1.Focus();
}
}
부 -
[ContentProperty("Content")]
public partial class cwBase1 : ChildWindow
...
new public object Content
{
get { return cprContent.Content; }
set { cprContent.Content = value; }
}
BASE에 대한 자세한 내용은 무엇입니까? 그것은'ContentControl'인가 아니면 일반적인'Control'인가? – AnthonyWJones
는 "ChildWindow" [ContentProperty ("콘텐츠")] 공공 부분 클래스 cwBase1에서 파생 : ChildWindow ... 새 공용 객체 내용 { GET은 {cprContent.Content를 반환; } {cprContent.Content = value; }} – Sako73
서식이 부족하여 죄송합니다. 의견에 linebreaks가 표시되지 않습니다. – Sako73