DataBinding к простым контролам в WPF и Silverlight
От: alexanderfedin США http://alexander-fedin.pixels.com/
Дата: 19.02.09 20:04
Оценка:
Люди, я тут пытаюсь пропихнуть баг чтобы его пофиксили, и мне нужна в этом помощь.
Итак, существуют несколько сценариев отображения данных из CollectionView (в WPF — это может быть ListCollectionView, в Silverlight — это PagedCollectionView).
Если в Silverlight создать ObjectDataSource, загрузить его данными, затем получить от него CollectionView:
var ds = new ObjectDataSource();
ds.SourceObject = new MyCoolBusinessObject();
ds.Load();
...подождать, пока закончится асинхронная загрузка...
var cv = (PagedCollectionView)ds.Data;

потом проверить чему равно свойство .CurrentItem у полученного CollectionView, то это свойство будет равным null.
Если мы привяжем к этому CollectionView DataGrid, то он без особых проблем отобразит все строки из CollectionView.
Если же взять TextBox и привязать его к cv.CurrentItem.<путь к полю с данными>, то из-за того, что изначально CollectionView позиционирован на позицию перед самым первым элементом коллекции, ничего отображено не будет. Чтобы что-то отобразилось, нужно сдвинуть CollectionView на какую-нибудь существующую строку.
Убей меня бог, но я нигде, ни в одной библиотеке для работы с данными, не встречал необходимости предпринимать какие-либо действия, чтобы забинденный контрол начал показывать существующие данные!
Мне говорят, что это поведение by-design from WPF и фиксить отказываются.
Чтобы зафиксить такой баг, мне нужен real user scenario — иначе говоря, чтобы кто-то из вас задал вопрос по данной теме. Тогда я этот вопрос смогу переправить нашему PMу.
Respectfully,
Alexander Fedin.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.