2014-10-05 64 views
1

我有下面的类:C#的DataGridView绑定

class Channel 
    { 
    public int Number { get; private set; } 

    public double HighestCoChannelSignal { get; private set; } 
    public double HighestOverlappingSignal { get; private set; } 

    public List<Network> NetsCoChannel { get; set; } 
    public List<Network> NetsOverlapping { get; set; } 
    } 

我有通道对象的列表。我想将它绑定到DataGridView并显示:Number,HighestCoChannelSignal,HighestOverlappingSignal,NetsCoChannel.Count,NetsOverlapping.Count。例如,如果HighestCoChannelSignal是一个特殊的值,则将DataGridView中的单元格值设置为我想要的值。我怎样才能做到这一点?

回答

1

您可以执行LINQ查询以将所需的数据转换为匿名类型的实例并将结果绑定到网格,例如,

var data = channels.Select(c => new {c.Number, 
            c.HighestCoChannelSignal, 
            c.HighestOverlappingSignal, 
            NetsCoChannelCount = c.NetsCoChannel.Count, 
            NetsOverlappingCount = c.NetsOverlapping.Count}) 
        .ToArray(); 

您可以添加任何适合处理该“特殊值”的代码。如果你想要一个特定的答案,那么你必须提供一个具体的描述。

+0

看起来不错,但我不知道这个解决方案的性能会怎样,因为我每隔1秒刷新一次数据。 – user1816806 2014-10-05 09:58:23

+0

你为什么想知道什么时候可以简单地测试它并看看?如果数据来自数据库,那么首先将数据以您想要的形式加载即可。如果这不是一个选项,你不会做得更好。 – jmcilhinney 2014-10-05 10:01:14