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

Winforms 更改Infragistics UltraGrid上布尔值的外观,winforms,checkbox,infragistics,ultrawingrid,Winforms,Checkbox,Infragistics,Ultrawingrid,默认情况下,布尔值在Ultragrid上的单元格中显示为选中(true)或未选中(false)的复选框。是否有一种方法可以简单地将其显示为文本,例如“真”或“假”、0或1,甚至“是”或“否”?我只是想显示布尔值。网格上的复选框给用户一种错误的印象,即他们可以通过尝试选中或取消选中复选框来修改数据。您可以通过处理InitializeLayout事件并使用值列表来实现这一点: private void ultraGrid1_InitializeLayout(object sender, Infrag

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

您可以通过处理
InitializeLayout
事件并使用
值列表来实现这一点:

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

令人惊叹的!我知道这必须很简单。我刚刚注意到,这更像是一个技术问题,但真值和假值现在显示为单元格中的组合框,可以更改。有没有办法隐藏这个单元格现在是一个下拉框的事实呢?我得好好玩玩它。我现在在火车上,所以我没有权限。