Я не слишком много работал с GridView и, покинув его, обнаружил, что он более сложный, чем мне нужно, но мне не хватает некоторых базовых способностей, которые, как я ожидаю, он будет иметь. Нет сомнений в том, что его реализация имеет смысл, учитывая его 90-процентную цель быть привязанным к набору данных, особенно когда это делается декларативно, но я намерен связать его с IEnumerable<T>
в коде.
Мне нужна способность легко выполнять следующие действия
- a) быть привязанным к
IEnumerable<T>
, где столбцы могут быть ограничены только определенными свойствами типа T
- b) запросить возвращение коллекции своих строк, где каждая строка может иметь ячейку, ищемую по свойству, с которым ячейка была связана
в принципе, было бы неплохо реализовать следующий интерфейс
public interface IEasyGridBinder {
void Bind<T>(IEnumerable<T> bindableObjects, params string[] propertiesToBind);
IList<IDictionary<string, string>> Values {get;}
}
Итак, чтобы получить это, я должен написать свой собственный EasyGridBinder, который наследует от GridView и реализует этот интерфейс, или есть действительно простой способ сделать эти вещи, с которыми я просто незнаком?
P.S. Бонусные баллы, если я могу написать что-то вроде
myGrid.Bind(myEntities, e=>{e.Id; e.Name; e.Customer.Name;});
Но я полагаю, что смогу понять это сам после прочтения выражений
Дополнительный вопрос: Нет ли способа получить исходные данные, которые были введены в сетку и не были преобразованы в html? Если поле, полученное в качестве входных данных, содержит пустую строку, то в ячейке, по-видимому, содержится "", поэтому нет ли способа отличить ввод пустой строки от пробела? Если это действительно так, то я, вероятно, в конечном итоге буду реализовывать большую часть функциональности GridView.