コード例 #1
0
        private void ChannelSettingsDataGridView_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
        {
            if (e.RowIndex >= stationIDs_.Count())
            {
                return;
            }
            ChannelSettingsColumn column = GetColumnByIndex(e.ColumnIndex);
            string    stationID          = stationIDs_[e.RowIndex];
            SDStation station            = channelSettingsLineup.GetStationByID(stationID);

            switch (column)
            {
            case ChannelSettingsColumn.Callsign:
                e.Value = station.callsign;
                break;

            case ChannelSettingsColumn.DefaultGuideChannels:
                var defaultChannelNumbers = channelSettingsLineup.defaultStationChannelNumbers[stationID];
                e.Value = string.Join("\n", defaultChannelNumbers);
                break;

            case ChannelSettingsColumn.DefaultPhysicalChannels:
                var defaultPhysicalChannels = channelSettingsLineup.defaultStationTuningParams[stationID];
                e.Value = string.Join("\n", defaultPhysicalChannels);
                break;

            case ChannelSettingsColumn.Download:
                e.Value = !channelSettingsLineup.ExcludedFromDownload(stationID);
                break;

            case ChannelSettingsColumn.EffectiveGuideChannels:
                var effectiveChannelNumbers = channelSettingsLineup.EffectiveStationChannelNumbers(stationID);
                e.Value = string.Join("\n", effectiveChannelNumbers);
                break;

            case ChannelSettingsColumn.EffectivePhysicalChannels:
                var effectivePhysicalChannels = channelSettingsLineup.EffectivePhysicalChannelNumbers(stationID);
                e.Value = string.Join("\n", effectivePhysicalChannels);
                break;

            case ChannelSettingsColumn.IncludeInGuide:
                e.Value = !channelSettingsLineup.ExcludedFromGuide(stationID);
                break;

            case ChannelSettingsColumn.Logo:
                string url   = station.logo?.URL;
                Image  image = null;
                if (url != null)
                {
                    image = Misc.LoadImageFromURL(url);
                }
                e.Value = (image != null) ? image : new Bitmap(1, 1);
                break;

            case ChannelSettingsColumn.PhysicalChannelOverride:
            case ChannelSettingsColumn.GuideChannelOverride:
                e.Value = "Override";
                break;

            case ChannelSettingsColumn.StationID:
                e.Value = stationID;
                break;

            case ChannelSettingsColumn.StationName:
                e.Value = station.name;
                break;
            }
        }