0

リストがあります。クエリがデータベースで実行されると(一致する結果がこのリストに入れられると)、CustomObjectsが入力されます。

ただし、これらの結果のカスタムオブジェクトの名前プロパティなどをリストビューに表示したいのですが、これが問題の原因となっている部分です。

リストのデータを表示するようにリストビューのテンプレートを設定する方法がわかりません。私が取得できた最も遠いものは次のとおりです。クエリの結果に3つの一致がある場合、「HELLO」というテキストボックスを3つ作成してリストビューに表示できます。これは、リストビューのテンプレート部分に「HELLO」というテキストボックスを配置することで実現されます(それ以外の場合は、VS2012のグリッドテンプレートのようにレイアウトされます)。解決策はバインディングと関係がありますか?

どんな助けでも大歓迎です。(メトロアプリ、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"/>
4

2 に答える 2

0

はい、必要なのはバインディングです。

Windows 8 XAMLアプリケーションのさまざまなリストについては、このMSDNの記事を確認してください。

特に、を見てくださいItemTemplateTextBlockがバインドされたコレクション内の各オブジェクトのプロパティにどのようにバインドされているかに注意してください。<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>
于 2012-08-31T12:39:18.470 に答える
0

プロパティを正しくバインドしていないだけで、データをListViewに取得しているように聞こえます。テキストボックスがあるテンプレートで、TextBoxのTextプロパティをText = {Binding YourPropertyName "}に変更します。これは、基本を理解するのに役立つ優れた記事です... http://msdn.microsoft.com/en -us / library / windows / apps / xaml / Hh780650(v = win.10).aspx

于 2012-08-31T12:37:50.993 に答える