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