WP数据绑定基础:列表控件与简单数据类型.pptx

WP数据绑定基础:列表控件与简单数据类型.pptx

数据绑定基础;前台表示和后台耦合度太高;

无法数据实时同步;不是不可以是太麻烦;数据绑定是一种XAML和后台数据交互的方式(桥梁)。

四个重要组成部分:

绑定的数据源;

数据源属性(路径);

绑定的目标对象;

目标对象的依赖属性;在XAML中需要数据的地方使用扩展标记

TextBlockx:Name=textBlock2Text={BindingPath=Name}/

在后台代码中为当前控件的数据上下文(DataContext)赋值

textBlock2.DataContext=newDataBindingPageData{Name=李四};

或者在后台代码中为当前页面数据上下文(DataContext)赋值

this.DataContext=newDataBindingPageData{Name=李四};

{BindingTitle}其实是{BindingPath=Title}的简写形式;在后台代码中定义模型数据属性。

publicTestModelTestModel{get;set;}

在初始化界面元素之前为模型数据属性赋值。

//模型赋值

TestModel=newTestModel{TestData=李四};

//初始化界面元素(内部解析XAML中的对象声明)

this.InitializeComponent();

在XAML中设置数据上下文(DataContext)。

DataContext={BindingTestModel,RelativeSource={RelativeSourceMode=Self}}“

注意RelativeSource属性;基本语法:{BindingPath=PropertyName}

Path属性值是要用于绑定的源对象的属性名

类似C#语法指定属性的子属性

{BindingPath=PropertyName.SubPropertyName}

绑定指定元素的附加属性

{BindingElementName=grid1,Path=(Grid.Row)}

可以使用索引器

{BindingPath=PropertyName[index]};Personp1=newPerson();

p1.Name=张三;

Bindingbinding=newBinding();

binding.Path=newPropertyPath(Name);

binding.Source=p1;

txtResult.SetBinding(TextBlock.TextProperty,binding);;数据上下文是可继承的。如果对父元素设置了数据上下文,则其所有子元素都将使用这一数据上下文。

子元素可以通过以下方式来重写此行为:对其绑定对象设置Source属性或者设置其DataContext(之后将应用于其所有子级)。

设置数据上下文的形式:

后台代码中设置;

XAML中定义资源并应用;资源中自定义对象

后台定义属性,前台XAML中绑定;;数据绑定的数据源不仅仅可以是一个自定义对象,还可以使用UI元素对象。

就是将一个界面元素对象作为绑定的数据源。

轻松实现两个控件之间的交互。

基本语法:

Width={BindingElementName=sliderDiameter,Path=Value}

ElementName就是指定数据源控件的Name属性;当数据源和目标属性类型不相同时,可以自定义两者之间的转换方式。

具体就是实现IValueConverter接口:

publicclassDateTimeToStringConverter:IValueConverter

{

publicobjectConvert(objectvalue,TypetargetType,objectparameter,stringlanguage)

{

returnSystem.Convert.ToDateTime(value).ToString(yyyy-MM-ddHH:mm:ss);

}

?

publicobjectConvertBack(objectvalue,TypetargetType,objectparameter,stringlanguage)

{

returnSystem.Convert.ToDateTime(value);

}

}

数据绑定时设置Converter为自定义的Converter;OneTime:一次绑定,即数据

文档评论(0)

1亿VIP精品文档

相关文档