2013-01-03 43 views
1

我想在我的MVVM项目中掌握VS2010(不是Blend)的设计数据。Issue with XAML ItemsControl的设计数据

我得到它的顶级VM属性的工作,但有收藏问题。我使用DevForce进行数据建模,所以最好我的XAML应该是这样的:

<MaintainTruckViewModel 
    xmlns="clr-namespace:IDATT.Module.Assets.Views" 
    xmlns:data="clr-namespace:IDATT.Model;assembly=IDATT.Model.SL"> 
    <MaintainTruckViewModel.CurrentItem> 
     <data:ASTTruck 
      TruckId="1000" 
      ExternalTruckId="T1000" 
      IsActive="True" 
      VinNumber="1ZAXBV" 
      Make="Volvo" 
      Model="ABC" 
      MakeYear="2010" 
      PlateNumber="ABC 123" 
      PlateIssueAdministrativeArea="MO" 
      Height="110" 
      AxlesCount="3"> 
      <data:ASTTruck.ASTInsurances> 
       <data:ASTInsurance 
        InsuranceKey="1" 
        CompanyName="MainCo" 
        AgentCompanyName="Joes insurance" 
        CoverageAmount = "1000000" 
        DeductibleAmount = "1000" 
        InsuranceType = "General liability" 
        IsActive = "True" 
        PolicyNumber = "123ABC" 
        ExpireOn = "01-01-2012" 
        Note = "This insurance covers all stuff"/> 
      </data:ASTTruck.ASTInsurances> 
     </data:ASTTruck> 
    </MaintainTruckViewModel.CurrentItem> 
</MaintainTruckViewModel> 

我的XAML这个样子的,我希望看到在设计视图ASTInsurance数据,但它并没有显示出来

<ItemsControl 
        Grid.Row="1" 
        ItemsSource="{Binding CurrentItem.ASTInsurances}"> 

我不知道如何使各种列表从设计数据“工作”。任何指针?我发现的地方,我可以用不同的d:DesignData的列表,并试图建立这样的XAML:

<Generic:List 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:Generic="clr-namespace:System.Collections.Generic;assembly=mscorlib" 
    x:TypeArguments="data:ASTInsurance" 
    xmlns:data="clr-namespace:IDATT.Model;assembly=IDATT.Model.SL"> 
       <data:ASTInsurance 
        InsuranceKey="1" 
        CompanyName="Great West" 
        AgentCompanyName="Joes insurance" 
        CoverageAmount = "1000000" 
        DeductibleAmount = "1000" 
        InsuranceType = "General liability" 
        IsActive = "True" 
        PolicyNumber = "123ABC" 
        ExpireOn = "01-01-2012" 
        Note = "This insurance covers all stuff"/> 

</Generic:List> 

现在XAML编辑强调Generic.List并说The type 'Generic:List' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built

回答

3

的问题,试图在XAML使用System.Collections.Generic.List<T>是(据我所知)XAML的Silverlight方言没有办法指定泛型类型参数的值。你得到的错误是因为没有类型System.Collections.Generic.List没有类型参数。

一两件事你可以做的是创造List<T>一个子类,对于类型参数提供一个值,但不包含新,也没有覆盖的成员,例如:

public class ASTInsuranceList : List<ASTInsurance> 
{ 
} 

然后,您可以使用ASTInsuranceList对象XAML包含ASTInsurance对象的列表。

+0

宾果!这工作。必须使用收集源并添加单独的设计数据。 – katit