yin281449811 发表于 2013-2-7 03:40:38

ItemsControl模型

从 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;
            }
      }
    }
}
页: [1]
查看完整版本: ItemsControl模型