有没有人找到TextBox字段问题的解决方案,其定义如下:
<TextBox MaxLength="10" AcceptsReturn="True"/>
在上述情况下,用户不应该输入超过10个字符,并且只要他不使用“Enter”就可以工作。一旦他使用输入制动线,那么TextBox将让他每行输入+2个字符。 所以它看起来负责尊重“MaxLength”属性的方法忽略“CR LF”:( 任何建议如何克服这个问题都是非常受欢迎的。
答案 0 :(得分: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
答案 1 :(得分:0)
我没有转换器就这样做了。如果您使用双向绑定,请执行以下操作:
public class KeywordsStatistic
{
public string Keyword { get { return lib_motcle; } }
public int NumActions { get { return nbrActions; } }
private string lib_motcle { get; set; }
private int nbrActions { get; set; }
}
然后,您可以对绑定属性的set函数应用类似的想法:
<TextBox Text="{Binding TextBoxText, Mode=TwoWay}" MaxLength="10" AcceptsReturns="True"/>