加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 00:25:06 所属栏目:百科 来源:网络整理
导读:好吧所以这很难解释. 场景: 我有一个DataGrid定义如下: DataGrid Height="100" Name="test" IsReadOnly="False" DataGrid.Columns DataGridTextColumn Header="URL"/DataGridTextColumn DataGridTextColumn Header="PORT"/DataGridTextColumn /DataGrid.Co
好吧所以这很难解释.

场景:

我有一个DataGrid定义如下:

<DataGrid Height="100" Name="test" IsReadOnly="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="URL"></DataGridTextColumn>
        <DataGridTextColumn Header="PORT"></DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

它有两个标题,我需要添加数据,我做了很多研究,建议使用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");

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

注意:我添加了.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>

代理类:

public class Proxy
{
    public string ip;
    public string port;
}

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

解决方法

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

public class Proxy
{
    public string ip {get; set;}
    public string port {get; set;}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读