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>

ディスプレイはこんな感じ。ここに画像の説明を入力

私が欲しいのは次のようなものです:
メッセージ
送信者

コレクション内の各データ。私はそれを表示する方法が問題であることを知っています。しかし、私はそれを行う方法が本当にわかりません。何か案は?ありがとう!

4

2 に答える 2

0

ListView で Item の DataTemplate を定義する必要があると思います。あなたのやり方は正しくありません。ListView を 2 回定義する必要はありません。代わりに、一度バインドして、必要に応じて DataTemplate のスタイルを設定します。開始するコードに近いコード例を以下に示します。必要なコンテンツで DataTemplate をスタイルします。

<ListView ItemsSource="{Binding MessagesCollection}">
    <ListView.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding Message}"/>
                <TextBlock Text="{Binding Name}"/>
            </StackPanel>           
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>
于 2013-05-29T10:45:52.407 に答える
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>
于 2013-05-29T10:45:56.703 に答える