从自定义控件引用子项
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;
}
}
而且有效。
我正在通过在 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;
}
}
而且有效。