从自定义控件引用子项

Referencing a children from a custom control

我正在通过在 ContentView 中组合一些元素来创建自定义控件。 ContentView 有另一个嵌套的 ContentView,称为 MainBody。 当我使用控件时,我将如何访问和设置 MainBody。这就是我想要实现的目标:

...
<controls.ControlName>
    <controls.ControlName.MainBody>
        <ContentView>
            ...
        </ContentView>
    </controls.ControlName.MainBody>
</controls.ControlName>
...

实际上这是我想出的:

public static readonly BindableProperty MainContentProperty = BindableProperty.Create("MainContent", typeof(View), typeof(DropShadowPanel), default(View));

        public View MainContent
        {
            get { return (View)GetValue(MainContentProperty); }
            set { SetValue(MainContentProperty, value); OnPropertyChanged(); }
        }

        public DropShadowPanel ()
        {
            InitializeComponent ();
            PropertyChanged += DropShadowPanel_PropertyChanged;
        }

        private void DropShadowPanel_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if(e.PropertyName == MainContentProperty.PropertyName)
            {
                mainContent.Content = MainContent;
            }
        }

而且有效。