gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 00:02:49 34 4
gpt4 key购买 nike

好吧,这很难解释。

场景:

我有一个 DataGrid 定义如下:

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

data grid visual

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

我可以使用可能不相关的冗长乏味代码来制定此数据(您将在下面看到原因)。

问题:

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

blank rows

故障排除:

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

Data Collection

相关代码:

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;但是,根本没有添加任何行,是的,就像这个测试一样,数据作为上下文/项目源的一部分在 Debug模式下是可见的。

更新:

我已尝试实现以下 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 方法时,我的结果如下:

four columns?

最佳答案

您缺少为绑定(bind)定义属性:至少,像这样更改代理类:

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

关于c# - WPF DataGrid 添加行但不添加数据(空白行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28711940/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com