1

定義が次のように見える TextBox フィールドの問題の解決策を見つけた人はいますか?

<TextBox MaxLength="10" AcceptsReturn="True"/>

上記の場合、ユーザーは 10 文字を超えて入力できないはずであり、「Enter」を使用しない限り機能します。Enter を使用して行を中断するとすぐに、TextBox により、行ごとにさらに 2 文字入力できるようになります。したがって、「MaxLength」属性を尊重する責任があるメソッドは「CR LF」を無視するようです:(その問題を克服する方法についての提案は大歓迎です。

4

2 に答える 2

1

その問題の解決策が見つかりました。完璧ではありませんが、機能します。

私が使用したのは、ユーザーが入力したテキストから「\ r」文字を削除するコンバーターです。

public class RemoveLineFeedCharConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        return value; //do not convert in that direction
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        var text = (string) value;
        return text.Replace("\r", ""); //remove line feed character
    }
}

述べたように、これは完璧ではありませんが、少なくとも入力されたテキストが MaxLength よりも短くなるようにします。

これが誰かを助けることを願っています

よろしくMG

于 2013-04-25T09:13:13.863 に答える