首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表框中的控件

列表框中的控件
EN

Stack Overflow用户
提问于 2012-11-29 02:29:25
回答 2查看 142关注 0票数 1

我很感兴趣,我是否可以将一些控件(图像,2-3个文本框)分组到一个元素中,然后在列表框中推送这些元素的分组?我正在尝试将俄罗斯社交网络Vkontakte的新闻阅读器安装到Windwos Phone 7中。

每条新闻都有一个图像、文本和其他一些元数据。因此,我想将所有这些信息分组到一个控件中,并在列表框中使用它。我尝试将一个网格(有一个图像和两个文本框)推送到列表框中,但是抛出了XamlParseException。另外,我需要从代码中获取文本框和图像的内容。在网格中我可以使用

代码语言:javascript
复制
<Grid.Resources>
    <src:Customers x:Key="customers"/>
</Grid.Resources>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-29 02:56:44

以下是您需要的内容:

  • 模型集合(ObservableCollection<T>推荐)(在您的情况下为News)。
  • A模型

示例:

XAML:

代码语言:javascript
复制
<ListBox Name="ListBox1">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                ...
                <Image Source="{Binding ImagePropertyInModel}" ... />
                <TextBlock Text="{Binding TextPropertyInModel}" ... />
                ...
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

代码隐藏:

代码语言:javascript
复制
ListBox1.ItemsSource = <collection of models>;

除了<DataTemplate>中的<Grid>,您还可以使用Custom Control (Templated Control)或您可能已经拥有的User Control

票数 1
EN

Stack Overflow用户

发布于 2012-11-29 02:56:02

您可以使用要使用的控件创建一个UserControl。使用您的ListBox,您可以执行以下操作:

代码语言:javascript
复制
<ListBox ItemsSource="{Binding Path=YourItemsSource}">
    <ListBox.ItemTemplate>
      <DataTemplate>
        <my:MyUserControl DataContext="{Binding}"/>
      </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

作为ListBox的ItemsSource,您可以使用新闻的ObservableCollection,并通过DataContext="{Binding}"绑定到UserControl中的新闻属性,例如:

代码语言:javascript
复制
<UserControl...>
    <Image Source="{Binding Path=photoAttachment}"/>
</UserControl>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13611967

复制
相关文章

相似问题

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