使 UltraGridColumn 可编辑取决于许多属性。
首先,UltraGrid 应该允许更新。这是由属性控制的
grid.DisplayLayout.Override.AllowUpdate = DefaultableBoolean.True
使用此属性,您可以更新整个网格(您可以在 Bands 级别应用相同的属性来限制它)。但是,这不足以启用编辑,因为您需要设置(对于个人列)另外两个属性
column.CellActivation = Activation.AllowEdit
column.CellClickAction = CellClickAction.Edit
但是,我对 URL 样式进行了一些研究。似乎这种样式为您的列分配了一个FormattedLinkEditor
不允许以任何方式编辑链接文本的对象(它被视为标签)。所以我建议,除非来自 Infragistics 的人有更好的建议,否则使用普通的编辑列。(当然,如果您的意图只是编辑链接文本)
这个简短的示例捕获了对单元格的单击并尝试启动编辑会话,但没有成功
private void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e)
{
UltraGridColumn cc = e.Layout.Bands[0].Columns[0];
cc.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.URL;
(cc.Editor as FormattedLinkEditor).LinkClicked += Form1_LinkClicked;
cc.CellActivation = Activation.AllowEdit;
cc.CellClickAction = CellClickAction.EditAndSelectText;
cc.Width = 500;
}
void Form1_LinkClicked(object sender, Infragistics.Win.FormattedLinkLabel.LinkClickedEventArgs e)
{
e.OpenLink = false;
ultraGrid1.PerformAction(UltraGridAction.EnterEditMode);
}