C #, как мне проверить значения текстового поля wpf? - PullRequest
0 голосов
/ 03 апреля 2011

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, как я кодировал?

1 Ответ

1 голос
/ 03 апреля 2011

В текстовом поле WPF 4 есть ошибка ( см. Мой вопрос ). Размещенное там решение работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...