모두런타임에이 usercontrol 확장의 모든 객체가 null 인 이유는 무엇입니까?
나는 간단한 수업을 운영하고 있습니다.
public class Container : UserControl
{
public bool IsClickable { get; set; }
}
이 클래스를 확장하는 클래스가 있습니다.
public class ScrollingContainer : Container
{
public void Draw()
{
}
public void Update()
{
}
}
나는 사용자 정의 클래스를 가지고 있으며,이 클래스는 ScrollingContainer를 확장합니다. 내에서 MainPage.xaml에서
public partial class MaskContainer : ScrollingContainer
{
public MaskContainer()
{
InitializeComponent();
}
}
XAML
<local:ScrollingContainer x:Class="Test.Types.MaskContainer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:GameObjects;assembly=GameObjects"
mc:Ignorable="d"
>
</local:ScrollingContainer>
, 나는 다음 있습니다.
<types:MaskContainer x:Name="maskContainer" Canvas.ZIndex="1" Width="Auto" Height="Auto">
<Canvas x:Name="maskCanvas">
<Button x:Name="button1" Content="test button"/>
</Canvas>
</types:MaskContainer>
런타임시 왜 maskCanvas와 button1이 모두 null입니까? maskContainer가 null이 아닙니다.
상속은 여기에서 간단해야합니다. 컨테이너는 usercontrol을 상속합니다. 스크롤 가능한 컨테이너는 컨테이너를 상속합니다. 마스크 컨테이너는 스크롤 가능한 컨테이너를 상속합니다. 이 레벨에서 원래 기본 클래스의 기능을 왜 잃게됩니까? main.xaml 내부의 maskcontainer에 요소 (button1)를 추가하는 것이 올바르지 않습니까?
최종 목표는 재사용 할 수있는 컨테이너를 만드는 것이지만 체인 전체에 걸쳐 지정한 모든 속성/메소드를 상속합니다.
도움을 주시면 감사하겠습니다.
내 경험에 의하면 UserControl에서 파생 된 클래스에서 상속받을 수 없습니다. 성공적으로 해본 적이 있습니까? – Gabe