在Infragistics UltraGrid上更改布尔值的外观

时间:2015-03-03 21:25:59

标签: winforms checkbox infragistics ultragrid

默认情况下,布尔值在Ultragrid上的单元格中显示为复选框,可以选中(true)或取消选中(false)。有没有办法简单地将其显示为文本,例如“True”或“False”,0或1,甚至“是”或“否”?我只是想显示布尔值。网格上的复选框会让用户误以为他们可以通过尝试选中或取消选中复选框来修改数据。

2 个答案:

答案 0 :(得分:1)

您可以通过处理InitializeLayout事件并使用ValueList

来实现这一目标
private void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e)
{
    var l = e.Layout.ValueLists.Add("MyBooleanValueList");
    var trueVal = l.ValueListItems.Add(true);
    var falseVal = l.ValueListItems.Add(false);
    l.DisplayStyle = Infragistics.Win.ValueListDisplayStyle.DisplayText;
    e.Layout.Bands[0].Columns["AmIHere"].ValueList = l;
}

答案 1 :(得分:1)

以下是如何在不显示下拉箭头且不允许用户编辑布尔单元格的情况下执行此操作:

    private void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e)
    {
        UltraGridLayout layout = e.Layout;
        UltraGridBand band = layout.Bands[0];

        ValueList vl = new ValueList();
        vl.ValueListItems.Add(true, "True");
        vl.ValueListItems.Add(false, "False");

        UltraGridColumn boolColumn = band.Columns["Boolean 1"];
        boolColumn.ValueList = vl;            
        boolColumn.CellActivation = Activation.NoEdit;
    }