从自定义控件引用孩子

时间:2018-08-15 18:04:03

标签: xaml xamarin.forms custom-controls setcontentview

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

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

1 个答案:

答案 0 :(得分:0)

实际上这是我想出的:

公共静态只读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;
        }
    }

它有效。