c1:C1FlexGrid 单元格只可以输入一位数字如何设定
如题,WPF 版, c1:C1FlexGrid的某一列内容允许输入一位数字,有没有类似于MaxInputLength = 1 这样的属性可以在前台设定?Winform版有这样的属性,WPF版对应的属性是什么,急。
不好意思回复晚了。
列上是没有这个属性的,但是列可以设置不同的DataTemplate,你可以放不同类型的控件上去。
比如你放了TextBox,它本身就有MaxLength属性。
<c1:Column>
<c1:Column.CellTemplate>
<DataTemplate>
<TextBox MaxLength="5"></TextBox>
</DataTemplate>
</c1:Column.CellTemplate>
</c1:Column> 感谢回复:
按照提供方案,入力问题可以解决,但是带来新的显示问题,比如,原来gird风格是背景色一行白色,一行灰色,但定义TextBox这列背景色就不能随之改变,全部是默认的白色。还有当焦点移动到这个单元格时,背景色也没有变换(其它单元格变为蓝色)。
这些显示的问题,虽然都可已用后台代码实现,但已然失去了使用C1控件的意义。
本帖最后由 dawnwind 于 2017-5-15 16:10 编辑
----------------------
dawnwind 发表于 2017-5-15 13:31
----------------------
如果不想使用模板的概念。
还有一种方式,可以使用事件来设置,在PrepareCellForEdit事件里拿到元素,并且设置元素的MaxLength。
代码参考:
void _flex_PrepareCellForEdit(object sender, C1.WPF.FlexGrid.CellEditEventArgs e)
{
if (e.Column == 1)
{
var bdr = e.Editor as Border;
(bdr.Child as C1FlexComboBox).MaxLength = 2;
}
}
页:
[1]