Silverlight实用窍门系列:64.Silverlight中的DataContext和ItemsSource

Silverlight实用窍门系列:64.Silverlight中的DataContext和ItemsSource,第1张

概述    在Silverlight中我们经常看到数据绑定源由DataContext或者ItemsSource指定,那么他们之间的区别有哪些呢?     DataContext:从英文字母意思是数据上下文,在Silverlight中某个父级元素设置了DataContext,那么其子元素将可以继承并且使用DataContext中的属性。DataContext绑定的数据源可以是实体集合、实体、属性等。  

    在Silverlight中我们经常看到数据绑定源由DataContext或者ItemsSource指定,那么他们之间的区别有哪些呢?

    DataContext:从英文字母意思是数据上下文,在Silverlight中某个父级元素设置了DataContext,那么其子元素将可以继承并且使用DataContext中的属性。DataContext绑定的数据源可以是实体集合、实体、属性等。

    ItemsSource:其数据源通常是实体集合(一列数据),无法让其子元素继承使用。

    下面我们以一个实例主要讲解DataContext的用法,其中在父级元素GrID设置了一个DataContext属性绑定实体,该实体内部有一个属性为实体集合,此实体集合用于GrID的子元素ListBox的ItemsSource属性绑定。代码如下:

    首先我们看两个实体,其中一个实体属性为List<>:

    public class ClaModel    {        public ClaModel()        {            Claname = "五年级三班";            ClaInfo = "全校最好的班级,获得多项荣誉";            StuList = new List<StuModel>()            {                new StuModel(){Stuname="刘三",StuAge=15,StuInfo="他很勤奋"},new StuModel(){Stuname="李四",StuAge=14,StuInfo="他很懒惰"},new StuModel(){Stuname="王五",StuAge=16,StuInfo="他很聪明"}            };        }        public string Claname { get; set; }        public string ClaInfo { get; set; }        public List<StuModel> StuList { get; set; }    }    public class StuModel    {        public string Stuname { get; set; }        public int StuAge { get; set; }        public string StuInfo { get; set; }    }

    其次我们来看Xaml代码绑定如下:

<UserControl x:Class="SLDataContext.MainPage"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    xmlns:d="http://schemas.microsoft.com/Expression/blend/2008"    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"    xmlns:local="clr-namespace:SLDataContext"    mc:Ignorable="d"    d:DesignHeight="300" d:DesignWIDth="400">    <!--第一种方式-->    <UserControl.Resources>        <local:ClaModel x:Key="ClaSource" />    </UserControl.Resources>    <GrID x:name="LayoutRoot" Background="White" DataContext="{StaticResource ClaSource}">        <TextBlock FontWeight="Bold" WIDth="60" Height="30" Text="{Binding Claname}"                    VerticalAlignment="top" HorizontalAlignment="left"   />        <TextBlock FontStyle="Italic"  WIDth="160" Height="30" Text="{Binding ClaInfo}"                   VerticalAlignment="top" margin="70 0 0 0" HorizontalAlignment="left"  />        <ListBox Height="239" HorizontalAlignment="left" name="lbDetail"                 VerticalAlignment="top" WIDth="343" ItemsSource="{Binding StuList}"                  SelectedValuePath="StuAge" displayMemberPath="Stuname" margin="27,61,0" />    </GrID></UserControl>

    最后我们看看另外一种后台绑定DataContext的方式。

    public partial class MainPage : UserControl    {        public MainPage()        {            InitializeComponent();            //第二种方式:也可以用后台代码绑定DataContext            //this.LayoutRoot.DataContext = new ClaModel();        }    }

    如需源码请点击 SLDataContext.zip 下载 ,效果图如下:

     

总结

以上是内存溢出为你收集整理的Silverlight实用窍门系列:64.Silverlight中的DataContext和ItemsSource全部内容,希望文章能够帮你解决Silverlight实用窍门系列:64.Silverlight中的DataContext和ItemsSource所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1068210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存