2013-05-29 67 views
0

我有一个名为MessagesCollection的集合。问题是,当我试图使用此代码显示它时:逐个处理集合

<ScrollViewer Grid.Row="2"> 
    <Grid Margin="10, 10,0,0"> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="Auto" /> 
       <RowDefinition Height="Auto" /> 
       <RowDefinition Height="Auto" /> 
      </Grid.RowDefinitions> 
      <Grid Grid.Row="0"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="2*"/> 
        <ColumnDefinition Width="1*"/> 
       </Grid.ColumnDefinitions> 
      <Grid Grid.Column="0"> 
       <ListView x:Name="ListMessages" Foreground="White" ItemsSource="{Binding MessagesCollection}" IsHitTestVisible="False"> 
        <ListView.Background> 
         <ImageBrush ImageSource="Public\Images\chat_green-textarea.png"/> 
        </ListView.Background> 
        <ListView.View> 
         <GridView ColumnHeaderContainerStyle="{DynamicResource MyHeaderStyle}"> 
          <GridViewColumn Width="auto" DisplayMemberBinding="{Binding Message}" /> 
         </GridView> 
        </ListView.View> 
       </ListView> 
      </Grid> 
      <Grid Grid.Column="1"> 
      </Grid> 
     </Grid> 
      <Grid Grid.Row ="1"> 
       <Image Source="Public\Images\chat_green-textarea-tail.png" Height="20" Width="30" HorizontalAlignment="Left" Margin="8,-4,0,0"/> 
      </Grid> 

     <Grid Grid.Row ="2"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="auto" /> 
       <ColumnDefinition Width="auto" /> 
      </Grid.ColumnDefinitions> 
      <Grid Grid.Column="0"> 
       <Label Foreground="white" FontSize="12">Sent by</Label> 

      </Grid> 
      <Grid Grid.Column="1"> 
       <ListView x:Name="ListMessages2" Foreground="Black" ItemsSource="{Binding MessagesCollection}" IsHitTestVisible="False" > 
        <ListView.View> 
         <GridView ColumnHeaderContainerStyle="{DynamicResource MyHeaderStyle}"> 
          <GridViewColumn Width="auto" DisplayMemberBinding="{Binding Name}" /> 
         </GridView> 
        </ListView.View> 
       </ListView> 
      </Grid> 
     </Grid> 
    </Grid> 
</ScrollViewer> 

显示器是这样的。 enter image description here

我想是这样的:
消息
发件人

在集合中的每个数据。我知道我显示它的方式是问题。但我真的不知道该怎么做。有任何想法吗?谢谢!

回答

0

我想你需要为ListView中的Item定义一个DataTemplate。你的做法是不正确的。您不必定义两次ListView。而是将其绑定一次,并根据您的需要设计DataTemplate样式。下面给出了一个接近您可能开始的代码示例。使用您希望的任何内容来设置DataTemplate的样式。

<ListView ItemsSource="{Binding MessagesCollection}"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <TextBlock Text="{Binding Message}"/> 
       <TextBlock Text="{Binding Name}"/> 
      </StackPanel>   
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
0

我不知道你为什么在这里使用GridView。带有正确数据模板的平板清单将帮助您,

<ListView x:Name="ListMessages" Foreground="White" ItemsSource="{Binding MessagesCollection}" IsHitTestVisible="False"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <StackPanel> 
        <TextBlock Text="{Binding Message}"/> 
        <TextBlock Text="{Binding Name}"/> 
       </StackPanel> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
+0

对不起@XAML情人,我们几乎同时发布了答案 – Jatin

+0

:)。是的,我明白了。 – Jawahar

+0

我在堆栈面板的结束标记上遇到了XamlParseException。我是WPF的新手。抱歉。 – ljpv14