Значения маски представления данных в столбце - PullRequest
1 голос
/ 20 июня 2011

Как я могу «замаскировать» значения сетки данных в приложении Windows Form? Например, как я могу ограничить значение в столбце datagridviewtextboxcolumn, чтобы оно не превышало заданное число? (т.е. значение ячейки в этом столбце <9,6) Я строю свое представление данных программно во время выполнения. </p>

Ответы [ 2 ]

3 голосов
/ 20 июня 2011

Вы можете просто использовать if () в обработчике событий CellEndEdit

2 голосов
/ 20 июня 2011

Самый простой способ сделать это, если это возможно, это проверить значение на уровне entity.

Например, скажем, у нас есть следующая упрощенная Foo сущность;

public class Foo
{
    private readonly int id;
    private int type;
    private string name;

    public Foo(int id, int type, string name)
    {
        this.id = id;
        this.type = type;
        this.name = name;
    }

    public int Id { get { return this.id; } }

    public int Type
    {
        get
        {
            return this.type;
        }
        set
        {
            if (this.type != value)
            {
                if (value >= 0 && value <= 5) //Validation rule
                {
                    this.type = value;
                } 
            }
        }
    }

    public string Name
    {
        get
        {
            return this.name;
        }
        set
        {
            if (this.name != value)
            {
                this.name = value;
            }
        }
    }
}

Теперь мы можем привязаться к нашему DataGridView a List<Foo> foos, и мы будем эффективно маскировать любой ввод в "Type" DataGridViewColumn.

Если это неверный путь, тогда просто обработайтеCellEndEdit Событие и подтверждение ввода.

...