Я делаю быстрое прототипирование, пытаюсь смоделировать интерфейс администратора для веб-сайта и пошел с WCF RIA Services. У меня есть возможность выставлять и использовать доменные сервисы от сервера к клиенту, но я борюсь с автоматическим созданием столбцов в сетке данных, когда результат запроса на сервере не содержит данных.
<riaControls:DomainDataSource Name="domainDataSource1"
LoadSize="20" QueryName="GetUsers" AutoLoad="True" >
<riaControls:DomainDataSource.DomainContext>
<ds:CobraDomainContext />
</riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>
<sdk:DataGrid ItemsSource="{Binding Data, ElementName=domainDataSource1}" AutoGenerateColumns="True" IsReadOnly="False" Width="250" Height="150" >
</sdk:DataGrid>
При этом отображается пустой массив данных размером 250x150 (без столбцов / без строк). Я ожидал, что столбцы для пользовательского объекта были отображены, даже если с сервера не было возвращено никаких данных, так как в противном случае представление могло бы отчасти сосать. Мой мозг не может понять, что не так, поэтому я буду краудсорсировать с помощью stackoverflow.
ОБНОВЛЕНИЕ: я ожидал, что результат запроса будет типизированным перечислением, но похоже, что результат запроса в DomainDataService просто IEnumerable, но не типизирован, поэтому внутренняя логика должна просмотреть список чтобы выяснить, какие данные он содержит.
Итак, обновленный вопрос: могу ли я дать DataGrid подсказку о том, какой тип данных будет возвращен, или иным образом автоматически сгенерировать столбцы в сетке (через XAML или код) ??