我使用telerik gridview for silverlight,我试图以编程方式设置每个列上的最大字符长度。 我想这样做当用户插入或编辑列的单元格时,最大(字符)长度是根据控件记录最大长度设置的。到目前为止,我只能设置MaxWidth,但这对我没有帮助,因为列标题总是比允许的文本长,MaxWidth设置列宽(以像素为单位),而不是编辑最大字符长度的列。有人能指出我正确的方向。如果需要,我可以提供一些代码。
我试过把它设置为 column.CellEditTemplate.SetValue(TextBoxEditor.MaxLengthProperty,MYMAXLENGTH);
但它给了我一个错误。
答案 0 :(得分:0)
我不确定您的网格数据上下文是什么或“控制记录”在哪里,但是这样的事情可能会有所帮助吗?
<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。)
答案 1 :(得分:0)
这样的事情怎么样?
Style textBoxStyle = new Style(typeof(TextBox));
textBoxStyle.Setters.Add(new Setter(TextBox.MaxLengthProperty, myMaxLength));
(this.MyGrid.Columns[0] as GridViewBoundColumnBase).EditorStyle = textBoxStyle;