【发布时间】:2011-04-03 17:46:08
【问题描述】:
文本框:
<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 和永无止境地继续前进。
如何让它始终更新?
为什么数字长10个字符后会重置为0?
为什么多个 0 不像我编码的那样重置为 56?
【问题讨论】:
标签: c# wpf data-binding