WPF:如何展开/折叠ListView中的项目

4
我有一个ListView如下所示:

无层次结构的ListView

当点击父行上的红色按钮时,我希望显示子行。第二次单击时,这些行应该再次隐藏。
我是WPF的新手,不知道如何 1.使行展开/折叠以及2.创建父行和子行之间的关系。
我的XAML如下所示:
<ListView Name="lvUpgrade">
    <ListView.View>
        <GridView>
            <GridViewColumn Width="20px">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <Image Source="{Binding Path=Icon}" />
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn Width="75px" DisplayMemberBinding="{Binding Path=Time, StringFormat={}{0:HH:mm:ss}}" />
            <GridViewColumn Width="300px" Header="Nachricht" DisplayMemberBinding="{Binding Path=Message}" />
        </GridView>
    </ListView.View>
</ListView>

背后的代码:

Public Class Upgrade

    Public Sub AddMessage(ByVal message As Message)
        Me.lvUpgrade.Items.Add(message)
    End Sub

    Public Class Message

        Public Enum MessageType

            Normal
            Information
            Success
            Warning
            [Error]
        End Enum

        Public Sub New(ByVal type As MessageType, ByVal message As String)
            _Type = type
            _Message = message
        End Sub

        Private _Type As MessageType = MessageType.Normal
        Public ReadOnly Property Type As MessageType
            Get
                Return _Type
            End Get
        End Property

        Private _Message As String = String.Empty
        Public ReadOnly Property Message As String
            Get
                Return _Message
            End Get
        End Property

        Private _Time As DateTime = Now
        Public ReadOnly Property Time As DateTime
            Get
                Return _Time
            End Get
        End Property

        Public ReadOnly Property Icon As BitmapImage
            Get
                Select Case Me.Type
                    Case MessageType.Information
                        Return My.Resources.Information16.ToBitmapImage
                    Case MessageType.Success
                        Return My.Resources.OK16.ToBitmapImage
                    Case MessageType.Warning
                        Return My.Resources.Alert16.ToBitmapImage
                    Case MessageType.Error
                        Return My.Resources.Error16.ToBitmapImage
                    Case Else
                End Select

                Return Nothing
            End Get
        End Property
    End Class
End Class
2个回答

5

1

2
有没有其他可能性作为TreeView?似乎每个节点只能有一个描述。但我想显示每个项目的多个信息。在链接后面的教程中,我找不到类似于我的需求的案例。 - mburm
ListView 是一种用于显示独立信息集合的视图。无法创建分层结构。为此,我们在 WPF 中有 TreeView。您可以做的是:创建一个 ItemTemplate 以特殊方式显示“独立信息”。例如:https://dev59.com/FXE95IYBdhLWcg3wGqEH - Felix C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接