WPF DataGrid添加行但不添加数据(空行)

Kyl*_*yle 4 c# wpf datagridview rows

好吧所以这很难解释.

场景:

我有一个DataGrid定义如下:

<DataGrid Height="100" Name="test" IsReadOnly="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="URL"></DataGridTextColumn>
        <DataGridTextColumn Header="PORT"></DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

数据网格视觉

它有两个标题,我需要添加数据,我做了很多研究,建议使用ObservableCollection,因为这将触发DataChanged事件.

我可以使用可能不相关的长期无聊代码来制定这些数据(您将在下面看到原因).

问题:

添加了200行,但文本本身不在表中

空行

故障排除:

我打开调试并使用屏幕截图帮助,您可以看到有实际数据但它不会将其插入行中,但它会添加行.

数据采集

相关守则:

ObservableCollection<Proxy> collection = new ObservableCollection<Proxy>();
collection = GetData(ips,ports);
test.CanUserAddRows = true;
test.ItemsSource = null;
test.ItemsSource = collection;
MessageBox.Show("Done");
Run Code Online (Sandbox Code Playgroud)

我正试图弄清楚我的头撞墙.

注意:我添加了.ItemSource = null; 然后将其设置为等于集合,因为它使行显示.我尝试过使用建议:test.DataContext = collection; 但是,根本没有添加任何行,是的,就像这个测试一样,数据在调试模式下可见,因为它是context/itemsource的一部分.

更新:

我尝试使用相同的结果实现以下XAML

<DataGrid Height="100" Name="test" IsReadOnly="False" ItemsSource="{Binding collection}">
    <DataGrid.Columns>
        <DataGridTextColumn Header="URL" Binding="{Binding ip}"></DataGridTextColumn>
        <DataGridTextColumn Header="PORT" Binding="{Binding port}"></DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

代理类:

public class Proxy
{
    public string ip;
    public string port;
}
Run Code Online (Sandbox Code Playgroud)

更新2:添加get和set方法时,以下是我的结果:

四列?

小智 12

您缺少定义绑定的属性:至少,更改Proxy类,如下所示:

public class Proxy
{
    public string ip {get; set;}
    public string port {get; set;}
}
Run Code Online (Sandbox Code Playgroud)