码迷,mamicode.com
首页 > 其他好文 > 详细

为Binding指定源的方法

时间:2015-10-08 13:07:40      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

  • 把普通的CLR类型单个对象指定为Source

  包括.NET Framework自带类型的对象和用户自定义类型的对象。如果类型实现了INotifyPropertyChanged接口,则可通过在属性的Set语句里出发PropertyChanged事件来通知Binding来更新数据。具体例子参考这里

  • 把普通的CLR集合类型对象指定为Source

  包括数组、List<T>、ObservableCollection<T>等集合类型。实际工作中,我们经常需要把一个集合作为ItemContorl派生类的数据源来使用,一般是把控件的ItemSource属性使用Binding关联到一个集合对象上。

  WPF的列表式控件都派生自ItemControl,自然也都集成类ItemSource属性。ItemSource可以接收一个IEnumerable接口派生类的实例作为自己的值。只要我们为一个ItemControl对象设置了ItemSource属性,ItemControl对象就会自动迭代其中的数据元素、为每个数据元素准备一个条目容器,并使用Binding在条目容器与数据元素之间建立关联。

  比如我们要把一个List<Student>集合作为ListBox的ItemSource,让ListBox显示Student的Name,UI代码如下:

技术分享
<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="175" Width="225" Loaded="Window_Loaded">
    <StackPanel>
        <ListBox x:Name="listBox" Height="120" Margin="5"></ListBox>
    </StackPanel>
</Window>
View Code

  在Load里设置Binding,代码如下:

技术分享
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            //准备数据
            List<Student> Students = new List<Student>()
            {
                new Student(){Id=1,Name="Tim",Age=19},
                new Student(){Id=2,Name="Tom",Age=18},
                new Student(){Id=3,Name="Kate",Age=17},
            };

            //为ListBox设置Binding
            this.listBox.ItemsSource = Students;
            this.listBox.DisplayMemberPath = "Name";           
        }
View Code

 

  • 把ADO.NET数据对象指定为Source

 

  • 使用XmlDataProvider把XML数据指定为Source
  • 把依赖对象(Dependency Object)指定为Source
  • 把容器的DataContext指定为Source
  • 通过ElementName指定Source
  • 通过Binding的RelativeSource属性相对的指定Source
  • 把ObjectDataProvider对象指定为Source
  • 把使用Linq检索得到的数据对象作为Binding的源

为Binding指定源的方法

标签:

原文地址:http://www.cnblogs.com/yijiaoyingbi/p/4860539.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!