wpf如何绑定ListBox!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf如何绑定ListBox!相关的知识,希望对你有一定的参考价值。

示例:

<!-- XAML -->

<StackPanel>

           

    <ListBox Name="lstBox1" Height="300">

    </ListBox>

           

    <ListBox Name="lstBox2" Height="300">

        <ListBox.ItemTemplate>

            <DataTemplate>

                <StackPanel Orientation="Horizontal">

                    <TextBlock Text="Binding Path=Name" Width="200"/>

                    <TextBlock Text="Binding Path=Spacing" Width="200" TextAlignment="Right"/>

                </StackPanel>

            </DataTemplate>

        </ListBox.ItemTemplate>

    </ListBox>

           

</StackPanel>


//  Loaded 事件代码

var fonts = Fonts.SystemFontFamilies

    .Select(s => new

   

        Name = s.Source,

        Spacing = s.LineSpacing

    );

lstBox1.ItemsSource = fonts;

lstBox2.ItemsSource = fonts;



示例中的数据源(fonts)是由 LINQ 生成的数据列表,支持 IEnumerable 接口

其中的每个元素为"匿名类型",具有2个属性:

Name - 字体名称 string

Spacing - 行距 double

然后设置 ListBox.ItemsSource 属性将数据绑定到 ListBox


在数据呈现的过程中

ListBox 将自动为列表 fonts 中的每个元素分配一个 ListBoxItem 对象


由于,ListBoxItem 的默认数据模板 (DataTemplate) 为 TextBlock

所以,在不指定数据模板的情况下,将显示元素的 ToString() 方法所返回的文本

如 listBox1 中所示


在 lstBox2 中,为了呈现元素的属性值,定义了数据模板 DataTemplate

并将模板中 TextBlock.Text 属性分别绑定到元素的2个属性上:

Text="Binding Path=Name"

Text="Binding Path=Spacing"

这样就实现了,列表元素 -> UI对象间的数据绑定


参考MSDN:数据绑定帮助主题

http://msdn.microsoft.com/zh-cn/library/vstudio/ms752039(v=vs.100).aspx

参考技术A 控件名点Datasource属性,直接绑定数据源 ,例如 list1.Datasource = list(一个集合) 参考技术B ListBox.Itemsource = Source 参考技术C 给我点时间,一定给你个满意的答案!

以上是关于wpf如何绑定ListBox!的主要内容,如果未能解决你的问题,请参考以下文章

wpf中如何绑定到listbox中的选定项

WPF 将 ListBox 绑定到枚举,显示描述属性

如何将字符串列表数据绑定到 WPF/WP7 中的 ListBox?

wpf listbox 绑定

WPF如何更改xaml代码里ListBox的数据绑定

2022-03-23 WPF面试题 ListBox 与 ListView - 如何选择以及何时进行数据绑定?