2014-10-05 65 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