我有一个listview控件,文本不会显示。我尝试了3种不同的实现,每种方法都得到相同的结果。相关项目数的行将突出显示,但文本无处可寻。我正在使用WPF,文本内容在我正在阅读的文件中如下所示:
string1::string2
但是,出于测试目的,我没有使用文件内容。
我正在使用的教程:http://www.wpf-tutorial.com/listview-control/listview-with-gridview/
“1”和“2”只是为了测试。
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; }
}
<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 :(得分: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>