Why are all objects in this extension of usercontrol null at runtime?
- by csciguy
All,
I have a simple class.
public class Container : UserControl
{
public bool IsClickable { get; set; }
}
I have a class that extends this class.
public class ScrollingContainer : Container
{
public void Draw()
{
}
public void Update()
{
}
}
I have a custom class, that then extends ScrollingContainer.
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>
In my mainpage.xaml, I have the following.
<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>
Why, at runtime, are both maskCanvas and button1 null? maskContainer is not null.
The inheritance should be straightforward here. Container inherits usercontrol. Scrollable container inherits container. Mask Container inherits scrollable container. Why am I losing the fucntionality of the original base class at this level? Is it incorrect to add the element (button1) to the maskcontainer inside of the main.xaml?
My end goal is to create a container that is reusable, but inherits all properties/methods that I've specified throughout the chain.
Any help is appreciated.