首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >WPF数据绑定堆栈面板

WPF数据绑定堆栈面板
EN

Stack Overflow用户
提问于 2009-10-06 13:06:24
回答 2查看 37.8K关注 0票数 23

我是一个来自.NET 2.0 C#的WPF编程初学者。

我正在尝试制作一个水平的StackPanel,它应该由数据库中的表中的数据填充。问题是,我想让它显示一个图像,其中包含下表中的一些文本,然后水平堆叠这两个项目。

下面是一些伪代码来显示我想要做的事情:

代码语言:javascript
复制
<StackPanel Orientation="horizontal" ItemsSource="{Binding Path=myTable}">
    <StackPanel>
        <Image Source="User.png"/>
        <Label HorizontalAlignment="Center" Content="{Binding Path=UserName}"></Label>
    </StackPanel>
</StackPanel>

我就是想不出该怎么做。

EN

回答 2

Stack Overflow用户

发布于 2009-10-06 14:18:35

Julien的答案对于您的书面描述是正确的,但是,查看您的XAML,您似乎正在寻找类似以下内容的内容:

代码语言:javascript
复制
<DataTemplate x:Key="UserDataTemplate">
    <StackPanel>
        <Image Source="User.png"/>
        <Label HorizontalAlignment="Center" Content="{Binding Path=UserName}" />
    </StackPanel>
</DataTemplate>

<ItemsControl x:Name="UserList" ItemTemplate="{StaticResource UserDataTemplate}" >
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel Orientation="Horizontal"/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

您肯定需要一个ItemsControl (或其派生)来绑定您的源代码。然后你可以通过设置它的items面板来改变方向(我相信这是一个默认的垂直方向的VirtualizingStackPanel ),所以只要把它设置成一个水平方向的VirtualizingStackPanel即可。然后,您可以将每个项目的ItemsTemplate设置为所需的布局(堆叠在从数据库绑定的文本之上的图像)。

票数 34
EN

Stack Overflow用户

发布于 2009-10-06 13:20:32

基本上,您希望使用能够显示对象枚举的控件。能够做到这一点的控件是类ItemsControl及其所有子类(SelectorListBoxListView等)。

将此控件的ItemsSource属性绑定到所需的对象列表,此处是从数据库获取的用户列表。将控件的ItemTemplate设置为将用于显示列表中每一项的DataTemplate

示例代码:

Resources部分(例如Window.Resources)中:

代码语言:javascript
复制
<DataTemplate x:Key="UserDataTemplate">
  <StackPanel Orientation="Horizontal">
    <Image Source="User.png"/>
    <Label HorizontalAlignment="Center" Content="{Binding Path=UserName}" />
  </StackPanel>
</DataTemplate>

在你的Window/Page/UserControl

代码语言:javascript
复制
<ItemsControl x:Name="UserList" ItemTemplate="{StaticResource UserDataTemplate}" />

在你的代码中:

代码语言:javascript
复制
UserList.ItemsSource = ... // here, an enumeration of your Users, fetched from your db
票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1525464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档