在metro应用程序</customobject>的列表视图中显示List <customobject>中的项目

时间:2012-08-31 11:16:30

标签: listview windows-8 microsoft-metro listviewitem .net-4.5

我有一个清单。当在数据库上运行查询(并将匹配结果放入此列表)时,它将使用CustomObjects填充

然而,我想要显示每个例如在列表视图中命名这些结果自定义对象的属性,这是导致我麻烦的部分。

我不确定如何设置列表视图的模板以显示列表中的数据。我能得到的最远的如下:如果查询结果有3个匹配,我可以在列表视图中显示3个文本框,说“HELLO”。这是通过在列表视图的模板部分放置一个说“HELLO”的文本框来实现的(否则将在VS2012的网格模板中进行布局)。解决方案是否与绑定有关?

非常感谢任何帮助。 (使用metro应用程序,Windows 8,.NET 4.5)

我目前看起来像这样

List<CustomObject> CustObjList =... //gets matches from database
listView.ItemsSource = CustObjList;

然后在XAML就是这个

<ListView.ItemTemplate>
   <DataTemplate>

      <UserControl Loaded="StartLayoutUpdates" Unloaded="StopLayoutUpdates">
           <ScrollViewer x:Name="scrollViewer" Style="{StaticResource HorizontalScrollViewerStyle}" Grid.Row="1">
                <TextBlock x:Name="listViewText" Text="HELLO" <--(???) Margin="30,0,0,0" Foreground="Black"/>

2 个答案:

答案 0 :(得分:0)

听起来你正在将数据导入ListView,只是没有正确绑定属性。在文本框所在的模板中,将TextBox上的Text属性更改为Text = {Binding YourPropertyName“}。这是一篇很棒的文章,可帮助您了解基础... http://msdn.microsoft.com/en-us/library/windows/apps/xaml/Hh780650(v=win.10).aspx

答案 1 :(得分:0)

是的,它是您需要的绑定。

查看此MSDN article,了解Windows 8 XAML应用程序中的各种列表。

特别要看ItemTemplate。请注意TextBlock如何绑定绑定集合中每个对象的属性:<TextBlock Text="{Binding Description}"

<ListView x:Name="itemListView"
          Margin="120,0,0,60"
          ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
          SelectionChanged="ItemListView_SelectionChanged">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Grid Height="110" Margin="6">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="110" Height="110">
                    <Image Source="{Binding Image}" Stretch="UniformToFill"/>
                </Border>
                <StackPanel Grid.Column="1" VerticalAlignment="Top" Margin="10,0,0,0">
                    <TextBlock Text="{Binding Title}" Style="{StaticResource TitleTextStyle}" TextWrapping="NoWrap"/>
                    <TextBlock Text="{Binding Subtitle}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap"/>
                    <TextBlock Text="{Binding Description}" Style="{StaticResource BodyTextStyle}" MaxHeight="60"/>
                </StackPanel>
            </Grid>
        </DataTemplate>
    </ListView.ItemTemplate>          
</ListView>