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

Change Appearance of Boolean Values on Infragistics UltraGrid

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

您可以通过处理 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;
}

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

    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;
    }