2012-01-30 32 views
1

Im为Silverlight使用telerik gridview,而Im试图在gridview填充数据之后以编程方式设置每个单独列上的最大字符长度。 我想这样做,当用户插入或编辑列的单元格时,根据控件记录最大长度设置最大(char)长度。到目前为止,我只能设置MaxWidth,但这并不能帮助我,因为列标题始终长于允许的常规文本,而MaxWidth设置列宽度以像素为单位,而不是编辑最大字符长度的列。有人能指引我走向正确的方向吗?如果需要,我可以提供一些代码。Silverlight Telerik GridView MaxLength?

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

但它给了我一个错误。

回答

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

+0

这工作。我大概读了10次该线程,但由于我是新来的傻瓜,wpf和telerik,我不明白EditorStyle是什么意思。谢谢。 – SchaF 2012-01-30 21:44:29

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> 

或者,如果你不使用视图模型,并需要绑定到用户控件的属性,然后使用的ElementName而不是源上的文本框结合。 (虽然你不能真正使用ElementName,除非你也加入这样的东西:ElementName binding inside of a cell template。)

+0

没有被控制记录,它自己的定制对象。它包含记录长度,描述,fieldname1,fieldname2等内容。通过将它指向数据库中的某些内容,我绑定了我的GridViews itemssource。我需要以编程方式设置每个单独的列maxLength,因此模板不起作用。基本上,控制记录是在数据库中保存maxLength列,然后我想将该列上的gridview设置为其maxLength。 – SchaF 2012-01-30 20:04:14

相关问题