ListBox横向绑定数据
正点解方法一
<Style x:Key="horizontalListBoxStyle" TargetType="ListBox">
<!--容器模板-->
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"<!--横向-->
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"<!--横向-->
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<!-- item模板 -->
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<!-- 这里设置自己定义的控件和显示-->
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Horizontal">
<TextBlock Padding="5,0,5,0"
Text="{Binding FirstName}"/>
<TextBlock Text="{Binding LastName}"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
Text="{Binding FirstName}"/>
<TextBlock Text="{Binding LastName}"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
效果图:
原来可以覆盖他默认的样式。
正点解方法二
还有另外一种方式,控件中指定
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
我相信应该有很多人知道横向绑定数据这个问题,也许是因为太简单了。。。
但是我查了网上也没有,问了群里的人但是似乎没描述好。
反正是也没得到答案,于是把整个寻找答案的过程记录了下来,也分享给我这种初学者。
对于这种问题,首先我们得知道他是一个样式绑定的问题,其次我们得想办法改变它的样式(方法一和最终)
不行的话想想其他方法的实现,(方法2)。还是不行的话可以试试 邪门的办法(hack)(方法3)。
因为我的对控件的知识没掌握好,不知道ListBox 是由 itempanel 做容器。
要更改itempanel中的控件排列形式,肯定不能在ItemTemplate 那里指定。
因为他只是用来指定重复的内容,一定要去他的ItemsPanel 指定他的容器。
希望对Silverlight的初学者有所帮助。
另外希望路过的牛人介绍一下如何系统的学习。
解决一下我这样学,不知道相对底一点的东西,遇到书上没有现成解决方案就困窘的这种状况。