1

我为silverlight使用了telerik gridview,并尝试在gridview填充数据后以编程方式设置每个单独列的最大字符长度。我想这样当用户插入或编辑列的单元格时,最大(字符)长度是根据控制记录的最大长度设置的。到目前为止,我只能设置 MaxWidth,但这对我没有帮助,因为列标题总是比允许的实际文本长,并且 MaxWidth 以像素为单位设置列宽,而不是编辑最大字符长度的列。有人可以指出我正确的方向。如果需要,我可以提供一些代码。

我尝试将其设置为 column.CellEditTemplate.SetValue(TextBoxEditor.MaxLengthProperty, MYMAXLENGTH);

但它给了我一个错误。

4

2 回答 2

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 a cell template。)

于 2012-01-30T19:55:38.110 回答
0

这样的事情怎么样?

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-30T20:58:11.093 回答