- 浏览: 1153774 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
RebeccaZhong:
严重: StandardWrapper.Throwableco ...
三步发布java方式的rest服务 -
RebeccaZhong:
严重: StandardWrapper.Throwableco ...
三步发布java方式的rest服务 -
冷酷月光:
楼主。请教一下。arcgis for android 有提供地 ...
ArcGIS API For Android离线地图的实现 -
winney117:
请问如何GET已有网页上的指定内容?比如百度文库中的某一篇文章 ...
三步发布java方式的rest服务 -
zige1012:
您好,我想问问我想换个自己地图的切片,也有4层(L0-L3), ...
ArcGIS API For Android离线地图的实现
http://blog.csdn.net/banmuhuangci/archive/2009/05/08/4160092.aspx
在使用Silverlight进行开发的时候,会觉得数据的操作是在是非常简单,不管是用WCF还是Webclient在于服务器通信后,Silverlight处理并显示数据都非常的方便,TextBlock TextBox等控件的使用方法也很容易掌握,但是,Silverlight依旧按照.net的传统提供了数据绑定的功能,使用数据绑定可以让 Silverlight的数据操作更加灵活,有序。
开发过ASP.NET都知道数据的绑定是多么的常用和重要,页面自动更新数据,更具不同的用户操作显示不同的数据可以说是WEB开发的基础,同样Silverlight中的数据绑定也非常重要。
在微软提供的Silverlight文档中详细的描述了数据绑定的各种方法。不过,由于Silverlight中的绑定与ASP.NET中的数据绑定还有是少许差别,刚接触Silverlight的开发员看过文档后会有不知其所以然的感觉。下面本文就用通俗的方法说明一下。
首先,Silverlight进行数据绑定的类Binding,这个类提供了相当丰富的方法和属性。
具体成员列表和说明可在Silverlight文档中找到。
需要关心的是 Binding类提供了 OneTime OneWay TwoWay三个属性,这三个属性可以指定数据源与目标的互动方式。及一次性绑定,目标随数据源变化而变化,目标和数据源同步变化。
Binding类不是很复杂,可以说是一个数据源与目标的中间协调员,用到数据绑定将肯定用到它,具体的说明在Silverlight文档中可以找到。
进行数据绑定可以通过XAML进行 如:(微软示例)
1.定义源对象。
2.在 XAML 中创建对源对象的命名空间的引用。
3.在 Resources 节创建源对象的实例。
4.通过设置 Source 属性或 DataContext 属性绑定到源对象。该元素的所有子级都继承 DataContext。
此例中数据源是一个XAML对象,该对象是代码中创建的MyDog类的一个实例。Binding是在XAML中的TextBlock中指定的Binding,如示例中的代码那样指定的话,也就相当于创建了以个Binding对象 并制定其路径(DogName)和模式等
使用代码创建绑定
1.添加 System.Windows.Data 命名空间。
2.定义源对象。
3.创建要绑定到的 FrameworkElement。
4.创建源对象的实例。
5.创建绑定对象。
6.对绑定对象设置绑定属性。
7.通过设置 Source 属性或 DataContext 属性来设置绑定源。该元素的所有子级都继承 DataContext。
8.将此绑定附加到 FrameworkElement 的属性。
以上示例中是通过代码创建绑定的示例。这个示例中在TextBlock的Text属性中就没有创建Binding对象了,而是通过后台创建好 Binding对象,并设置好属性,然后通过MyTextBlock.SetBinding(TextBlock.TextProperty, MyBinding);将TEXT属性进行绑定。
在两个示例中都可以看到,指定数据源有两种方法,以TextBlock为例,可以指定Binding类的Source属性到数据源,也可以将 TextBlock的DataContext指定到数据源,效果一样,如果TextBlock没有指定数据源,会在其绑定的Binding中寻找是否有数据源。
在实际开发中,为了让程序更可看更有条理,我们会混合使用两种方法,及在后台创建数据源,在XAML中绑定。这样前台就免去了创建数据源的XAML元素,后台省去了创建Binding类的代码,并且通过查看前台的XAML代码就可以很容易的判断出各个控件的绑定数据。
这样的写法让数据绑定可读性更高,也更容易理解,最常用的方式。
下面来比对下XAML创建和代码创建
相当于
相当于
相当于
以上就是在Silverlight中数据绑定的一些简要介绍。
混合XAML 和代码的创建数据绑定的方式是最容易理解和阅读的,所以我们经常会看到在使用DataGrid的通过制定ItemsSource 到数据源后,在XAML中就直接使用"{Binding Address}"进行数据绑定了,DataGrid中的ItemSource也就相当于TextBlock的DataContext属性了,其他控件的数据绑定方法了类似,另外数据源可以用类,也可以是字符串类型等常量类型,使用常量类型时,就不需要指定Binding的Path属性了,因为他本身就是数据。
另外,Binding还有许多高级用法,例如控件对数据的共享,数据的更新绑定等,这些内容在Silverlight文档中都有,清楚基本概念后,万变不离其中。
在使用Silverlight进行开发的时候,会觉得数据的操作是在是非常简单,不管是用WCF还是Webclient在于服务器通信后,Silverlight处理并显示数据都非常的方便,TextBlock TextBox等控件的使用方法也很容易掌握,但是,Silverlight依旧按照.net的传统提供了数据绑定的功能,使用数据绑定可以让 Silverlight的数据操作更加灵活,有序。
开发过ASP.NET都知道数据的绑定是多么的常用和重要,页面自动更新数据,更具不同的用户操作显示不同的数据可以说是WEB开发的基础,同样Silverlight中的数据绑定也非常重要。
在微软提供的Silverlight文档中详细的描述了数据绑定的各种方法。不过,由于Silverlight中的绑定与ASP.NET中的数据绑定还有是少许差别,刚接触Silverlight的开发员看过文档后会有不知其所以然的感觉。下面本文就用通俗的方法说明一下。
首先,Silverlight进行数据绑定的类Binding,这个类提供了相当丰富的方法和属性。
具体成员列表和说明可在Silverlight文档中找到。
需要关心的是 Binding类提供了 OneTime OneWay TwoWay三个属性,这三个属性可以指定数据源与目标的互动方式。及一次性绑定,目标随数据源变化而变化,目标和数据源同步变化。
Binding类不是很复杂,可以说是一个数据源与目标的中间协调员,用到数据绑定将肯定用到它,具体的说明在Silverlight文档中可以找到。
进行数据绑定可以通过XAML进行 如:(微软示例)
1.定义源对象。
public class Dog { public string DogName { get; set; } }
2.在 XAML 中创建对源对象的命名空间的引用。
<UserControl x:Class="BindingXAML.Page" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:my="clr-namespace:BindingXAML">
3.在 Resources 节创建源对象的实例。
<Grid.Resources> <my:Dog x:Name="MyDog" DogName="Spot"/> </Grid.Resources>
4.通过设置 Source 属性或 DataContext 属性绑定到源对象。该元素的所有子级都继承 DataContext。
<TextBlock Text="{Binding DogName, Source={StaticResource MyDog}, Mode=OneTime}"/>
<TextBlock Text="{Binding DogName, Mode=OneTime}" DataContext="{StaticResource MyDog}"/>
此例中数据源是一个XAML对象,该对象是代码中创建的MyDog类的一个实例。Binding是在XAML中的TextBlock中指定的Binding,如示例中的代码那样指定的话,也就相当于创建了以个Binding对象 并制定其路径(DogName)和模式等
使用代码创建绑定
1.添加 System.Windows.Data 命名空间。
using System.Windows.Data; (Binding类的命名空间)
2.定义源对象。
public class Dog { public string DogName { get; set; } }
3.创建要绑定到的 FrameworkElement。
<Grid x:Name="LayoutRoot" Background="White"> <TextBlock x:Name="MyTextBlock" Text="Test"/> </Grid>
4.创建源对象的实例。
Dog MyDog = new Dog(); MyDog.DogName = "Spot";
5.创建绑定对象。
Binding MyBinding = new Binding();
6.对绑定对象设置绑定属性。
MyBinding.Path = new PropertyPath("DogName"); MyBinding.Mode = BindingMode.OneTime;
7.通过设置 Source 属性或 DataContext 属性来设置绑定源。该元素的所有子级都继承 DataContext。
MyBinding.Source = MyDog;
MyTextBlock.DataContext = MyDog;
8.将此绑定附加到 FrameworkElement 的属性。
MyTextBlock.SetBinding(TextBlock.TextProperty, MyBinding);
以上示例中是通过代码创建绑定的示例。这个示例中在TextBlock的Text属性中就没有创建Binding对象了,而是通过后台创建好 Binding对象,并设置好属性,然后通过MyTextBlock.SetBinding(TextBlock.TextProperty, MyBinding);将TEXT属性进行绑定。
在两个示例中都可以看到,指定数据源有两种方法,以TextBlock为例,可以指定Binding类的Source属性到数据源,也可以将 TextBlock的DataContext指定到数据源,效果一样,如果TextBlock没有指定数据源,会在其绑定的Binding中寻找是否有数据源。
在实际开发中,为了让程序更可看更有条理,我们会混合使用两种方法,及在后台创建数据源,在XAML中绑定。这样前台就免去了创建数据源的XAML元素,后台省去了创建Binding类的代码,并且通过查看前台的XAML代码就可以很容易的判断出各个控件的绑定数据。
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using System.Windows.Data; namespace SilverlightTest { public partial class Databind : UserControl { public Databind() { InitializeComponent(); } private void UserControl_Loaded(object sender, RoutedEventArgs e) { Mind m = new Mind(); txt1.DataContext = m; } } public class Mind //数据源 { string _info="OK"; public string Info { get { return _info; } set { _info = value; } } } }
<UserControl xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" x:Class="SilverlightTest.Databind" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300" Loaded="UserControl_Loaded"> <Grid x:Name="LayoutRoot" Background="White"> <TextBlock x:Name="txt1" Text="{Binding Info,Mode=OneTime}" /> </Grid> </UserControl>
这样的写法让数据绑定可读性更高,也更容易理解,最常用的方式。
下面来比对下XAML创建和代码创建
{Binding Info,Mode=OneTime}
相当于
Binding MyBinding = new Binding(); MyBinding.Path = new PropertyPath("Info"); MyBinding.Mode = BindingMode.OneTime;
Text="{Binding Info,Mode=OneTime}"
相当于
MyTextBlock.SetBinding(TextBlock.TextProperty, MyBinding);
<TextBlock Text="{Binding DogName, Mode=OneTime}" DataContext="{StaticResource MyDog}"/>中的 DataContext="{StaticResource MyDog}
相当于
txt1.DataContext = m;
以上就是在Silverlight中数据绑定的一些简要介绍。
混合XAML 和代码的创建数据绑定的方式是最容易理解和阅读的,所以我们经常会看到在使用DataGrid的通过制定ItemsSource 到数据源后,在XAML中就直接使用"{Binding Address}"进行数据绑定了,DataGrid中的ItemSource也就相当于TextBlock的DataContext属性了,其他控件的数据绑定方法了类似,另外数据源可以用类,也可以是字符串类型等常量类型,使用常量类型时,就不需要指定Binding的Path属性了,因为他本身就是数据。
另外,Binding还有许多高级用法,例如控件对数据的共享,数据的更新绑定等,这些内容在Silverlight文档中都有,清楚基本概念后,万变不离其中。
发表评论
-
WCF Service中HttpContext.Current为null的解决办法
2010-12-28 17:36 2145http://s.click.taobao.com/t_8?e ... -
删除文件
2010-05-21 16:35 1226/// <summary> ... -
Silverlight 3中的Behavior技术
2010-04-15 18:52 1985转:http://blog.csdn.net/dotn ... -
C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值
2010-03-24 13:31 11393C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有 ... -
C#中几种获取路径方法
2010-03-22 14:37 3124string str1 =Process.GetCurrent ... -
c# rar压缩解压缩
2010-03-19 14:42 5285此程序利用 WinRAR 程序对文件进行压缩,命令行语法可参考 ... -
译文:详谈Silverlight 3.0中的数据验证 (Silverlight Validation in Detail)
2010-03-18 15:48 2550在先前的帖子里我提到 ... -
C# 读写XML文件
2010-03-17 15:26 1413phone.xml <?xml version=&quo ... -
C#XML读写
2010-03-09 13:00 3858一.前言: XML是微软.Ne ... -
Silverlight Make Into Control
2010-02-10 14:57 1315本文主要介绍了Expression ... -
简单的等待进度条
2010-02-10 10:58 4333最近我需要制作一些简 ... -
Silverlight:Dependency Property(依赖属性)学习笔记
2010-02-09 13:07 5378学习SL/WPF,Dependency Prope ... -
silverlight中的几个冷门标记 {x:Null},d:DesignWidth,d:DesignHeight
2010-02-09 12:26 2280{x:Null}:用于设置某属 ... -
Silverlight Custom Content Control
2010-02-08 20:28 1926As a Silverlight control develo ... -
silverlight应用程序中未处理的错误代码:2104 类别:InitializeError 消息:无法下载 iis上部署Silverlight
2010-02-01 16:30 3978产生错误: 解决方案:第一步:默认网站--属性----- ... -
后台代码动态创建silverlight的Grid
2009-12-08 09:52 4843Code below can add item that co ... -
在 Silverlight 中使用 IValueConverter 实现对绑定数据的格式化
2009-11-11 20:31 3105转载:http://www.cnblogs.com/drive ... -
C# 中的委托和事件
2009-11-04 20:53 1217MyClass.cs using System; us ... -
Visual Studio 2008无法创建silverlight项目
2009-10-15 09:44 2113现象:xp + visual studio 2008 sp1安 ...
相关推荐
在本文中,我们将深入探讨Silverlight中的数据绑定,特别是如何绑定到集合数据。数据绑定是Silverlight应用程序中连接用户界面(UI)与数据模型的重要机制,使得UI元素能够动态反映数据的变化。 首先,数据绑定可以...
**Silverlight绑定数据**是微软开发的一个关键技术,用于在用户界面和应用程序逻辑之间建立桥梁,使得数据能够自动更新UI元素,极大地简化了UI与后台数据的交互。本示例源码提供了一个直观的教学,展示了如何在...
在这个"Silverlight绑定数据的例子.zip"压缩包中,我们很可能会找到一个演示如何在Silverlight应用中实现数据绑定的实例。 在Silverlight中,数据绑定主要通过XAML(Extensible Application Markup Language)来...
- **数据绑定表达式**: XAML中的{Binding}标记用于创建数据绑定表达式,可以指定要绑定的属性和数据源。 2. **Grid控件** - **Grid控件**是Silverlight中的布局容器,用于组织和定位子元素。它通过行和列定义来...
Silverlight绑定是其核心特性之一,它使得数据与用户界面元素之间的通信变得简单而直观。本文将深入探讨Silverlight中的动态Binding,以及如何在实际开发中利用这一功能。 首先,我们需要理解什么是数据绑定。数据...
在探讨Silverlight 2中的控件数据绑定之前,我们首先理解一下Silverlight的基本概念以及数据绑定在其中扮演的角色。Silverlight是由微软开发的一种强大的Web应用程序框架,旨在为Web开发者提供跨浏览器、跨平台的...
这个压缩包文件名为“[其他类别]Silverlight绑定数据的例子_silverlightdatabinding(ASP.NET源码).rar”,显然包含了关于Silverlight数据绑定的示例代码,特别是与ASP.NET相关的部分。数据绑定是编程中的关键概念...
在.NET框架中,Silverlight是一种强大的富客户端技术,它允许开发者创建交互式、图形丰富的Web...通过阅读并实践"Silverlight绑定数据的例子_silverlightdatabinding"这份教程,你应该能更好地理解和运用这一关键技术。
在本文中,我们将深入探讨Silverlight中的数据模板和自定义数据绑定,特别是在Silverlight 3.0版本中的应用。数据模板是WPF和Silverlight中一个强大的特性,它允许我们以自定义的方式显示数据对象,使得UI设计更加...
在这个"ASP.NET-[其他类别]Silverlight绑定数据的例子.zip"压缩包中,包含的项目很可能是展示如何在Silverlight应用中实现数据绑定的示例。具体可能包括以下内容: 1. **XAML中的数据绑定**:XAML文件可能会包含...
在XAML中,我们通过`DataContext`属性设置UI元素的数据上下文,然后使用`Binding`标记扩展将控件属性绑定到ViewModel的属性。 3. **绑定XML数据到UI**: 一旦XML文档加载并解析,我们可以创建一个ViewModel,将XML...
Silverlight中的`Binding`类是实现数据绑定的主要工具,可以通过设置`Source`属性指定数据源,`Path`属性指定要绑定的属性路径。此外,还可以设置`Mode`属性来控制数据流向,例如单向或双向绑定。 为了简化数据绑定...
数据绑定是WPF和Silverlight中的核心概念,它使得UI元素可以与数据源自动同步。为了动态绑定Dictionary到DataGrid,我们需要设置DataGrid.ItemsSource属性。这通常在XAML或代码-behind中完成,将Dictionary对象绑定...
在示例中,通过`<CheckBox IsChecked="{Binding IsChecked,ElementName=checkBox1}">`,两个CheckBox实现了同步选中状态,这正是数据绑定的作用。它简化了代码,使得UI更新与模型的更改可以自动同步。 2. **数据...
总结来说,Silverlight实现数据源和控件同步更新涉及数据绑定、DataContext、TwoWay绑定、INotifyPropertyChanged接口、UpdateSourceTrigger属性、CollectionViewSource、MVVM模式以及数据验证等多个方面。...
这通常是在服务配置文件(如web.config或app.config)中修改绑定设置,例如设置`<binding messageEncoding="Mtom"`,并启用`<gzipStreamedEncodingBindingElement>`。 5. **安全性和兼容性**:虽然压缩可以提高效率...
在本文中,我们将深入探讨如何使用Silverlight 4与SQL Server 2005进行交互,特别是关于查询数据并将其绑定到datagrid控件的过程。Silverlight是微软开发的一个富互联网应用程序(RIA)框架,用于创建具有丰富媒体和...
在深入了解微软Silverlight技术时,数据绑定和数据源的访问是核心概念之一。本教程旨在帮助开发者掌握如何在Silverlight应用程序中有效地利用数据源对象,从而实现动态且交互丰富的用户体验。 Silverlight是微软...