有人用过wpf吗,我想在ListView中实现将一条记录数据显示成两行,如下效果: ________________________________________________
名称:XXX                  开始时间:2012-10-16|
结束时间:2012-10-16        状态:已开始         |
_______________________________________________|
名称:XXX                  开始时间:2012-10-16|
结束时间:2012-10-16        状态:已开始         |
_______________________________________________|
名称:XXX                  开始时间:2012-10-16|
结束时间:2012-10-16        状态:已开始         |
_______________________________________________|
名称:XXX                  开始时间:2012-10-16|
结束时间:2012-10-16        状态:已开始         |
_______________________________________________|
如何实现?

解决方案 »

  1.   


    <ListView x:Name="LV_Panel">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Text="名称:"/>
                                <TextBlock Text="{Binding Name}"/>
                                <TextBlock Text="开始时间:"/>
                                <TextBlock Text="{Binding StartTime}"/>
                            </StackPanel>
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Text="结束时间:"/>
                                <TextBlock Text="{Binding EndTime}"/>
                                <TextBlock Text="状态:"/>
                                <TextBlock Text="{Binding Status}"/>
                            </StackPanel>
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
    后台给LV_Panel绑定一个对象集合list就行了LV_Panel.ItemsSouce=list;
      

  2.   

    直接在两个StackPanel中设置各自样式就可以了...
      

  3.   

    两个StackPanel中的内容是一条记录,主要是要设最外层的那个StackPanel的样式,但是交替显示就不懂了,我是新手,求解
      

  4.   


    <ItemsControl x:Name="ic_PowerPort" AlternationCount="2">
                            <ItemsControl.Template>
                                <ControlTemplate>
                                    <ScrollViewer VirtualizingStackPanel.VirtualizationMode="Recycling" 
                                        VerticalScrollBarVisibility="Auto" 
                                        HorizontalScrollBarVisibility="Disabled">
                                        <ItemsPresenter/>
                                    </ScrollViewer>
                                </ControlTemplate>
                            </ItemsControl.Template>
                            <ItemsControl.ItemTemplate>
                                <DataTemplate>
                                    <Border Margin="1" x:Name="back" Height="50">
                                        <ToggleButton HorizontalAlignment="Stretch" MouseDoubleClick="ToggleButton_Click">
                                            <DockPanel >
                                                <Border BorderBrush="Black" BorderThickness="0.5" Width="40" Margin="5">                                            </Border>
                                                <TextBlock Text="{Binding Name}" ToolTip="{Binding Name}"  Margin="10 0 0 0" VerticalAlignment="Center" TextTrimming="WordEllipsis"/>
                                                <Image x:Name="_img" Width="18" Height="18" Margin="10 0" MouseLeftButtonDown="DelPowerPort_Click" HorizontalAlignment="Right" Source="/Vdc3D.Coms.DModelEditor;component/Images/del.png"/>
                                            </DockPanel>                                    </ToggleButton>
                                    </Border>
                                    <DataTemplate.Triggers>
                                        <Trigger Property="ItemsControl.AlternationIndex" Value="0">
                                            <Setter Property="Background" Value="#e9e9e9"  TargetName="back"></Setter>
                                        </Trigger>
                                        <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                                            <Setter Property="Background" Value="#d9d9d9"  TargetName="back"></Setter>
                                        </Trigger>
                                    </DataTemplate.Triggers>
                                </DataTemplate>
                            </ItemsControl.ItemTemplate>
                        </ItemsControl>设置AlternationCount="2" DataTemplate.Triggers可以设置触发器 隔行变色 
      

  5.   

    lhx527099095:基于你的第种方式(使用StackPanel的那种)可以实现隔行变色吗?
      

  6.   


    汗 看来你还真的是新手啊 
    给你写个完整的例子吧
    <ListView x:Name="LV_Panel" AlternationCount="2">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <Border x:Name="back" >
                                <StackPanel>
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Text="名称:"/>
                                        <TextBlock Text="{Binding Name}"/>
                                        <TextBlock Text="开始时间:"/>
                                        <TextBlock Text="{Binding StartTime}"/>
                                    </StackPanel>
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Text="结束时间:"/>
                                        <TextBlock Text="{Binding EndTime}"/>
                                        <TextBlock Text="状态:"/>
                                        <TextBlock Text="{Binding Status}"/>
                                    </StackPanel>
                                </StackPanel>
                            </Border>
                            <DataTemplate.Triggers>
                                <Trigger Property="ItemsControl.AlternationIndex" Value="0">
                                    <Setter Property="Background" Value="#e9e9e9"  TargetName="back"></Setter>
                                </Trigger>
                                <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                                    <Setter Property="Background" Value="#d9d9d9"  TargetName="back"></Setter>
                                </Trigger>
                            </DataTemplate.Triggers>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
    可以看下我的博客
    http://blog.csdn.net/lhx527099095/article/details/8084173
      

  7.   

    ItemsControl.AlternationIndex 换成ListView.AlternationIndex
    粘贴错了  呵呵 sorry
      

  8.   

    不错,我也刚学WPF,这个很有用。
      

  9.   


    改了,找不到这个类型错误  1  未在类型“ListView”中找到属性“AlternationIndex”
      

  10.   

    测试了下,没有报错,但是却发现那个交叉显示无效,如果外层是ItemsControl,则有效,但是外层是ListBox或ListView则无效,奇怪啊,而且微软给的示例不是用Triggers的,难道问题在Triggers的触发上?
      

  11.   

    好吧 其实我自己一般情况下不爱用listview或者listbox 直接用itemscontrol 来的比较直接
    而且我博客的那个例子也可以运行 所以不必执着具体的控件
    算是我自己错误的开脱吧 哈哈
      

  12.   

    我试了下另一个属性,对ListView和ListBox有效,就用你博客中的例子改了下:        <ListView x:Name="IC_List" AlternationCount="2">
                <ListView.ItemContainerStyle>
                    <Style TargetType="{x:Type ListViewItem}">
                        <Setter Property="Background" Value="Blue"/>
                        <Style.Triggers>
                            <Trigger Property="ListBox.AlternationIndex" Value="1">
                                <Setter Property="Background" Value="Red"/>
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </ListView.ItemContainerStyle>
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Border x:Name="back" Height="20">
                            <TextBlock Text="{Binding ShowText}"/>
                        </Border>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
      

  13.   


    学习了 谢谢~~~
    不过还是那句话 listview listbox都是继承于Itemscontrol的
    itemscontrol用起来很灵活 所以我依旧不喜欢用listbox和listview 呵呵 
      

  14.   


    谢谢各位的支持,刚学WPF,想再问下,按你给的这个代码,使用了模板列后,原本的选中行的背景色无效了<Trigger Property="IsSelected" Value="true">
        <Setter Property="Background" Value="Blue"/>
    </Trigger>
    即以上触发的样式无效了,这个如何搞??