Передайте объект класса в usercontrol - PullRequest
0 голосов
/ 04 мая 2011

Привет, как передать объект класса из формы пользовательского интерфейса в представление данных пользовательского элемента управления?

Я создал пользовательский элемент управления, который имеет сетку данных, текстовое поле поиска поверх таблицы данных и метку для отображения общего количества. и я хотел бы иметь следующую функцию, которая будет написана в этом элементе управления.

  • Показать общее количество для этого объекта, привязанного к сетке данных.
  • Событие TextChange для фильтрации данных в datagridview.

Я бы хотел, чтобы описанные выше функции были написаны в Usercontrol, поскольку я чувствовал, что излишне повторять это в форме пользовательского интерфейса. Для этого я создал источник данных в usercontrol

 public object Datasource { get; set; }

1) Если мой объект класса, например, User, как мне получить тип источника данных, преобразованный в пользователя, получить общее количество пользователей и привязать к метке в usercontrol?

2) Мне показалось излишним писать это ниже в каждой форме. Как мне упростить это и сделать это в самом userControl, используя источник данных, который я передаю ему.

 private void BaseCRUDForm_GridViewTextChangedSearch(object sender, EventArgs e)
    {            
        if (sender.ToString().Length > 0)
        {
            Users = Users.Where(x => x.Name.StartsWith(sender.ToString())).ToList();
        }
        else
        {
            Users = Repository.UserRespository(false).GetAllUsers();
        }
        UserBindingSource.DataSource = Users;
    }

Пожалуйста, совет.

1 Ответ

1 голос
/ 04 мая 2011

При создании объекта пользовательского контроля существует два способа пересылки данных в пользовательский элемент управления

  1. Инициализируйте свойство. Свойство будет иметь тип объекта, который может быть обработан позднее при привязке к сетке.

  2. передать данные в конструктор.

Я чувствую, что у вас должен быть конструктор, т.е. пункт 2.

Теперь после наложения этого объекта вы можете заполнить как метку, так и сетку.

Надеюсь, это поможет вам.

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