帮助将bool转换为整数

时间:2010-12-14 21:51:49

标签: c#

我一直收到一条错误,上面写着“不能隐式地将bool类型转换为int”我无法弄清楚该怎么做。我得到错误:DisplayIndex = columns [i] .Visible,

代码:

    private void SaveColumnOrder()
    {
        if (dgPortStatus.CanUserReorderColumns == true)
        {
            List<ColumnOrderItem> columnOrder = new List<ColumnOrderItem>();
            DataGridViewColumnCollection columns = this.Columns;
            for (int i = 0; i < columns.Count; i++)
            {
                columnOrder.Add(new ColumnOrderItem
                {
                    ColumnIndex = i,
                    DisplayIndex = columns[i].Visible,
                    Width = columns[i].Width
                });

            }

            portalDataGridViewSetting.Default.ColumnOrder[this.Name] = columnOrder;
            portalDataGridViewSetting.Default.Save();
        }
    }

代码:

 public sealed class ColumnOrderItem
    {
        public int DisplayIndex { get; set; }
        public int Width { get; set; }
        public bool Visible  { get; set; }
        public int ColumnIndex { get; set; }
    }

3 个答案:

答案 0 :(得分:11)

尝试

DisplayIndex = columns[i].Visible ? 1 : 0

但是,更有可能的意思是

DisplayIndex = columns[i].DisplayIndex

答案 1 :(得分:1)

我能解释的唯一可能的解释是:

        int displayIndex = 0;
        for (int i = 0; i < columns.Count; i++)
        {
            columnOrder.Add(new ColumnOrderItem
            {
                ColumnIndex = i,
                DisplayIndex = displayIndex;
                Width = columns[i].Width
            });

            if (columns[i].Visible) displayIndex++;
        }

答案 2 :(得分:0)

它告诉你什么是错的。 Visiblebool,您尝试将其分配给DisplayIndex int

相关问题