自定义CustomerControl 本质上类似asp.net MVC 的分部视图一样,通过引用的方式将内容视图的内容放进主视图中,作为主视图的一部分进行显示,内部有自己的显示,操作逻辑。
1:创建ContentView 例如:CustomerView
2:创建属性:创建的属性必须是BindableProperty类型的。才能将主视图的属性绑定到内容视图中去。类似于asp.net MVC 里面的@HTML.Partial(“viewPage”,model)的方式。
public class DataModel{
public int Id{get;set;}
...
}
//BindableProperty 类型的属性
public static readonly BindableProperty DataModelProperty = BindableProperty.Create(nameof(DataModel), typeof(DataModel), typeof(CustomerView), null, propertyChanged: (bindable, oldValue, newValue) =>
{
((CustomerView)bindable).InitializeView();
});
public DataModel DataModel
{
get { return (DataModel)GetValue(DataModelProperty); }
set { SetValue(DataModelProperty, value); }
}
private void InitializeView()
{
//加载视图数据
}
4:主视图引用,并绑定数据
<controls:CustomerView DataModel="{Binding Model}"/>