如何将List <string>绑定到StackPanel </string>

时间:2013-08-12 13:06:36

标签: c# list windows-phone-7 binding windows-phone-8

在我的应用程序中,我有List string个,但我无法了解如何/不知道如何将此列表绑定到{{1} }}

我已尝试使用StackPanel,但ListBox的滚动性质对我的应用程序的用户来说非常不方便。

所以有人知道如何将ListBox List string绑定到StackPanel吗?

我曾尝试弄乱几处房产,但却找不到任何东西。

感谢您的帮助!

1 个答案:

答案 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中绑定和项目控制的文章/教程,了解有关如何执行各种任务的更多信息,有很多可以解释。