六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 49|回复: 0

ItemsControl模型

[复制链接]

升级  74%

7

主题

7

主题

7

主题

童生

Rank: 1

积分
37
 楼主| 发表于 2013-2-7 03:40:38 | 显示全部楼层 |阅读模式
从 ItemsControl 继承的控件包含一个对象集合。 ItemsControl 的一个示例是 ListBox。可以使用 ItemsSource 属性或 Items 属性来填充一个 ItemsControl。

1、使用ItemSource属性

使用ItemSource属性,需将其绑定到一个实现IEnumerable接口的类型的实例上,系统会枚举其成员做为ItemsControl的Item。如在一个ListBox中列出系统的所有字体,并在每一项中显示字体的样式(类似于Office系列中的字体下拉菜单):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Windows.Markup;

namespace WpfApplication1
{
    /// <summary>
    /// 使用ItemSource属性,需将其绑定到一个实现IEnumerable接口的类型的实例上,
    /// 系统会枚举其成员做为ItemsControl的Item。
    /// 如在一个ListBox中列出系统的所有字体,
    /// 并在每一项中显示字体的样式(类似于Office系列中的字体下拉菜单)。
    /// </summary>
    public partial class ItemsControl模型 : Window
    {
        public ItemsControl模型()
        {
            InitializeComponent();
            // 设置绑定的数据源
            Binding binding = new Binding();
            binding.Source = Items;
            // 绑定  第一个参数为依赖的属性,第二个为绑定值
            lstFont.SetBinding(ListBox.ItemsSourceProperty, binding);
        }
        
        private List<TextBlock> Items  
        {  
            get {
                List<TextBlock> result = new List<TextBlock>();
                // 遍历系统的所有字体  
                foreach (FontFamily family in Fonts.SystemFontFamilies)
                {  
                    foreach (KeyValuePair<XmlLanguage, string> pair in family.FamilyNames)
                    {
                        TextBlock t = new TextBlock();
                        // 设置字体名称  
                        t.Text = pair.Value;
                        // 设置字体样式  
                        t.FontFamily = family;
                        t.FontSize = 12;  
                        result.Add(t);  
                    }  
                }  
                // 返回一个TextBlock的控件对象集合
                return result;
            }  
        }
    }
}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表