2017-06-05 72 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