2017-06-05 128 views
1

我有一个listview控件,文本不会显示出来。我已经尝试了3种不同的实现,并且每个实现都得到相同的结果。相关项目数的行将突出显示,但文本无处。我使用WPF和文本内容的样子,我在阅读文件中的以下内容:listview中的文本内容不显示C#

string1::string2 

然而,出于测试目的,我不利用文件的内容。

教程中,我使用:http://www.wpf-tutorial.com/listview-control/listview-with-gridview/

“1” 和 “2” 是在那里只是为了测试。

enter image description here

代码

 List<ServerData> items = new List<ServerData>(); 

     while ((line = file.ReadLine()) != null) 
     { 
      string[] serverData = Regex.Split(line, "::"); 
      items.Add(new ServerData() { IPAddress="1", ServerName="2" }); 
     } 
     listServer.ItemsSource = items; 
     file.Close(); 

....

public class ServerData 
{ 
    public string IPAddress { get; set; } 
    public string ServerName { get; set; } 
} 

XAML

<ListView Margin="10,47,11,45.8" x:Name="listServer" Grid.RowSpan="2"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="IP Address" Width="218.4" DisplayMemberBinding="{Binding Name}" /> 
      <GridViewColumn Header="Server Name" Width="218.4" DisplayMemberBinding="{Binding Name}" /> 
     </GridView> 
    </ListView.View> 
</ListView> 
+0

这是winforms吗? WPF?这个文件的内容是什么样的?你有没有建立任何数据绑定?它不可能自动显示“ServerData”的子属性。 – Clint

+0

你需要添加listview的子项目,子项目我的意思是IPAddress和Servername作为子项目。 –

回答

1
<ListView Margin="10,47,11,45.8" x:Name="listServer" Grid.RowSpan="2"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="IP Address" Width="218.4" DisplayMemberBinding="{Binding Name}" /> 
      <GridViewColumn Header="Server Name" Width="218.4" DisplayMemberBinding="{Binding Name}" /> 
     </GridView> 
    </ListView.View> 
</ListView> 

这是你的问题,你绑定列到Name,而应该是:

<ListView Margin="10,47,11,45.8" x:Name="listServer" Grid.RowSpan="2"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="IP Address" Width="218.4" DisplayMemberBinding="{Binding IPAddress}" /> 
      <GridViewColumn Header="Server Name" Width="218.4" DisplayMemberBinding="{Binding ServerName}" /> 
     </GridView> 
    </ListView.View> 
</ListView> 
+1

这是我需要的,谢谢! – ryan

+0

@ryan太棒了,如果你有机会接受它作为答案,那会是光明的。 – Clint

+0

当然,给我5分钟:) – ryan