`

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;
            } 
        }
    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics