2012-01-30 34 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

相關問題