从空中自动生成列会导致Silverlight

我正在做一些快速原型设计,并试图模拟一个网站的管理界面,并与WCF RIA服务。我能够从服务器到客户端公开和使用域服务,但是当服务器上的查询结果没有数据时,我正在努力在数据网格中自动生成列。
 <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数据网格(没有列/没有行)。我期待显示用户实体的colunms,即使没有从服务器返回任何数据,因为视图最初会有点糟糕。我的大脑似乎无法弄清楚出了什么问题,所以我将使用stackoverflow进行众包。 更新:我有点期望查询的结果是一个类型化的枚举,但看起来DomainDataService上的查询结果只是IEnumerable而不是类型,所以内部逻辑需要查看列表以发现什么它包含的数据类型。 所以更新的问题是:我可以给DataGrid一个提示,告诉我们将返回什么类型的数据,或者自动生成网格中的列(通过XAML或代码)?     
已邀请:
我猜你的ItemsSource枚举没有打字,对吧?如果它只是一个对象列表,则datagrid将找不到实体公共属性。 我不知道你的实体类是怎么回事,但试试这段代码看看我在说什么: 某处:
public class User {
    public string Name { get; set; }
    public int Age { get; set; }
}
XAML:
 <my:DataGrid x:Name="datagrid"/>
代码隐藏:
public MainPage() {
    InitializeComponent();
    datagrid.ItemsSource = new List<User>();
}
该列表为空,但datagrid将选择列名,因为我正在使用List of Users。它可以是用户枚举等。 我希望它有所帮助, 干杯 编辑:关于更新的问题:您可以尝试使用转换器。     

要回复问题请先登录注册