我正在使用silverlight的telerik网格视图,并试图在网格视图填充数据后以编程方式设置每一列的最大字符长度。我希望当用户插入或编辑列的单元格时,最大长度(char)是基于控件记录的最大长度设置的。到目前为止,我只能设置MaxWidth,但这对我没有帮助,因为列标题总是比允许的自然文本长,并且MaxWidth设置以像素为单位的列宽,而不是设置编辑最大字符长度的列。谁能给我指个正确的方向。我可以提供一些代码,如果需要的话。
我已经尝试将它设置为column.CellEditTemplate.SetValue(TextBoxEditor.MaxLengthProperty,MYMAXLENGTH);
但它给了我一个错误。
发布于 2012-01-31 04:58:11
像这样怎么样?
Style textBoxStyle = new Style(typeof(TextBox));
textBoxStyle.Setters.Add(new Setter(TextBox.MaxLengthProperty, myMaxLength));
(this.MyGrid.Columns[0] as GridViewBoundColumnBase).EditorStyle = textBoxStyle;http://www.telerik.com/community/forums/silverlight/gridview/best-way-to-set-maxlength-on-gridviewdatacolumn.aspx
发布于 2012-01-31 03:55:38
我不确定您的网格的数据上下文是什么,或者“控制记录”在哪里,但这样的东西可能会有所帮助?
<telerik:RadGridView ItemsSource="{Binding MyData, Source={StaticResource MyViewModel}}">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn>
<telerik:GridViewDataColumn.CellEditTemplate>
<DataTemplate>
<TextBox MaxLength="{Binding MyMaxLength, Source={StaticResource MyViewModel}}" />
</DataTemplate>
</telerik:GridViewDataColumn.CellEditTemplate>
</telerik:GridViewDataColumn>
</telerik:RadGridView.Columns>
</telerik:RadGridView>或者,如果您没有使用视图模型,并且需要绑定到UserControl的属性,那么在TextBox绑定上使用ElementName而不是Source。(尽管您不能真正使用ElementName,除非您还合并了如下内容:ElementName binding inside of a cell template。)
https://stackoverflow.com/questions/9069193
复制相似问题