TextBox:
<TextBox Text="{Binding Path=nSetting, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Name="tbSetting" />
Класс:
public class FormLink
{
private string _nSetting;
public string nSetting
{
get
{
return this.validateNumberValue(this._nSetting, 256, 9999, 56);
}
set
{
this._nSetting = this.validateNumberValue(value, 256, 9999, 56);
}
}
private string validateNumberValue(string number, int nMaxReturn, int nMaxParse, int nDefault)
{
int pNum = nMaxParse;
Int32.TryParse(number, out pNum);
if (pNum == 0)
{
return nDefault.ToString();
}
else if (pNum < nMaxReturn)
{
return pNum.ToString();
}
else if (pNum > nMaxReturn)
{
return nMaxReturn.ToString();
}
else
{
return nDefault.ToString();
}
}
}
Как мне заставить это текстовое поле корректно обновляться?
Сейчас он обновляется до 256, если число> 256 .. НО ... если я продолжаю печатать, он не сбрасывается до 256. Кроме того, после 10 символов он сбрасывается до 0. Я также могу начать набирать 0 и продолжать идти без ограничений.
Как мне заставить его всегда обновляться?
Почему он сбрасывается в 0 после того, как номер длиной 10 символов?
Почему множественные 0 не сбрасываются до 56, как я кодировал?