使用VB.Net在WPF中以编程方式添加列表视图项后更新列表视图项

时间:2014-07-22 14:41:35

标签: wpf vb.net listview listviewitem

我是vb.net开发人员,是WPF的新手。

我正在将Windows窗体应用程序转换为WPF,我在添加listview项目时遇到问题。我在应用程序中有一个通信过程,它连接到服务器,使用tcp连接向/从中发送或下载信息。此过程更新列表视图以显示与服务器通信的状态。但是当我添加它们时,这些项目不会显示,而是在进程完成时它们都可见。我想在添加项目时刷新它们。在Windows窗体中,我使用了代码:

 ListView1.EnsureVisible(ListView1.Items.Count - 1) 

将确保最后一项在列表视图中可见。但该代码在WPF中不起作用。我正在寻找替代这个的替代方案。任何建议都是受欢迎的,即使它包含使用其他元素而不是列表视图。或者,如果有人知道使用C#的替代品,也欢迎。

更新我的列表视图的我的VB代码如下:

Private Sub DebugMsg(ByVal Message As String, Optional ByVal NewLine As Boolean = True)
    If NewLine = True Then
        Dim item As New ListViewItem
        item.Content = Message
        Me.ListView1.Items.Add(item)
        item = Nothing
    ElseIf NewLine = False Then
        If ListView1.Items.Count > 0 Then
            ListView1.Items(ListView1.Items.Count - 1).Content = Message
        Else
            Dim item As New ListViewItem
            item.Content = Message
            Me.ListView1.Items.Add(item)
            item = Nothing
        End If
    End If
    Me.ListView1.Items.Refresh()
End Sub

每次我想更新列表视图以显示通信状态时,都会使用此子。

我的XAML代码如下:

<ListView x:Name="ListView1" Margin="10,101,10,10" Background="#FF0C0C0C" Foreground="Cyan" FontSize="20" ItemsSource="{Binding}" >
<ListView.View>
    <GridView>
        <GridView.ColumnHeaderContextMenu>
            <ContextMenu/>
        </GridView.ColumnHeaderContextMenu>
        <GridViewColumn Header="Status" Width="475"/>
    </GridView>
</ListView.View>

先谢谢了!

0 个答案:

没有答案