1

Silverlight にテレリック グリッドビューを使用しており、グリッドビューにデータが入力された後、個々の列の最大文字長をプログラムで設定しようとしています。ユーザーが列のセルを挿入または編集しているときに、制御レコードの最大長に基づいて最大 (char) 長が設定されるようにしたいと考えています。これまでのところ、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バインディングでSourceの代わりにElementNameを使用します。(ただし、次のようなものも組み込まない限り、ElementNameを実際に使用することはできません:セルテンプレート内のElementNameバインディング。)

于 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 に答える