在我的应用程序中,我有List
string
个,但我无法了解如何/不知道如何将此列表绑定到{{1} }}
我已尝试使用StackPanel
,但ListBox
的滚动性质对我的应用程序的用户来说非常不方便。
所以有人知道如何将ListBox
List
string
绑定到StackPanel
吗?
我曾尝试弄乱几处房产,但却找不到任何东西。
感谢您的帮助!
答案 0 :(得分:4)
要将可枚举项绑定到控件并显示它们,可以使用ItemsControl
中的任何一个并将对象绑定到ItemsSource
属性。 ItemsControl
公开了一个名为ItemsPanel
的属性,您可以在其中进一步修改以更改项目的容器。 StackPanel
是大多数人的默认设置。
<ItemsControl ItemsSource="{Binding NewbieList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<!-- The default for an ItemsControl is a StackPanel with a vertical orientation -->
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
修改强>
至于你的评论,ItemsSource
中的任何内容都会“输出”ItemTemplate
属性中的内容(默认为基本为TextBlock
,文本绑定到DataContext
})。对于每个元素,DataContext
将是列表中的项目。例如,如果您有string
列表,则可以执行以下操作:
<!-- Rest is omitted for succinctness -->
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding .}" FontSize="26" MouseDown="yourEventHandler"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl>
或者,如果你想要的只是要更改的字体大小,你可以使用TextElement.FontSize
本身的ItemsControl
依赖属性,或者设置ItemsContainer
的样式:
<ItemsControl TextElement.FontSize="26">
<!-- Rest omitted for succinctness -->
</ItemsControl>
或者:
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="TextElement.FontSize" Value="26"/>
</Style>
</ItemsControl.ItemContainerStyle>
我建议你阅读关于WPF中绑定和项目控制的文章/教程,了解有关如何执行各种任务的更多信息,有很多可以解释。