如何在silverlight中的单个ListBox中显示不同宽度的数据?

时间:2011-03-12 07:47:34

标签: silverlight windows-phone-7 listbox width dynamic-binding

我正在开发window phone 7应用程序。我是窗口手机7应用程序的新手。我将数据动态绑定到ListBox内的TextBlock。我使用以下代码来显示ListBox中的数据。

<ListBox Margin="16,161,30,186" Name="IncomeSummaryListBox" DataContext="{Binding}" Grid.ColumnSpan="3">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock TextWrapping="Wrap" Width="200" Text="{Binding Key}" Foreground="Gray"></TextBlock>
                                    <TextBlock TextWrapping="Wrap" Width="200" Text="{Binding Value}" Foreground="Orange"></TextBlock>
                                    <Line X1="-3400" Y1="32" X2="10" Y2="32" Stroke="Gray" StrokeThickness="1"/>
                                </StackPanel>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                        <ListBox.Template>
                            <ControlTemplate>
                                <ScrollViewer HorizontalScrollBarVisibility="Visible">
                                    <ItemsPresenter />
                                </ScrollViewer>
                            </ControlTemplate>
                        </ListBox.Template>
                    </ListBox>

我正在使用组合框在列表框中显示数据。列表框中的数据根据​​组合框中的选择而变化。因此,对于某些选择,我希望文本块的宽度为1400,对于某些选择,我希望文本块的宽度为200.这是Text =“{Binding Key}”文本块的要求。如上所述,如果没有指定正确的宽度,则无法正确显示数据。如何解决上述问题。能否请您提供我可以解决上述问题的任何代码或链接?如果我做错了什么,请指导我。

1 个答案:

答案 0 :(得分:1)

为什么不为Width属性创建绑定?然后,您可以根据页面类中的要求将其设置为1400或200.