2010-03-15 3 views
2

Я автор некоторых пользовательских классов, которые я хотел бы создать с помощью XAML:Silverlight 4 XAML Коллекции

<Grid Width="300" Height="300"> 
    <l:DashboardTable> 
     <l:DashboardTable.DashboardTableQuery> 
      <dq:DashboardTableQuery 
       ConnectionString="Data Source=bunkerhill;Initial Catalog=emgov_data;User Id=emgovadmin;[email protected]$$word;" 
       Query="select datename(month, cr_tb_DateDue) AS Month, sum(cr_tb_AmountTransaction) AS Total from cr_tb_transactionbill where Year(cr_tb_DateDue) = 2005 and Month(cr_tb_DateDue) IN (1,2,3,4) group by datename(month, cr_tb_DateDue)" 
       > 
       <dq:DashboardTableQuery.DataColumns> 
        <dq:DataColumn ColumnName="Month" ColumnOrder="0" Label="Month" /> 
        <dq:DataColumn ColumnName="Total" ColumnOrder="1" Label="Total" /> 
       </dq:DashboardTableQuery.DataColumns> 
      </dq:DashboardTableQuery> 
     </l:DashboardTable.DashboardTableQuery> 
    </l:DashboardTable> 
</Grid> 

Проблема заключается в том, что я получаю XamlParseException, когда я пытаюсь запустить этот код XAML. Я определил, что когда он попадает в элемент dq: DataColumn. Похоже, что это происходит только тогда, когда у меня есть свойство, которое затем содержит коллекцию, а затем несколько элементов в коллекции, которые возникают у меня.

С кем-либо сталкивалось что-либо подобное? Я пытаюсь добиться этого в XAML декларативно.

+0

Не могли бы вы предоставить более подробную информацию об исключении? Какой тип имеет свойство 'DataColumns'? – AnthonyWJones

ответ

1

Есть несколько вещей, которые я могу придумать для должности Xaml для работы.

  • DashboardTableQuery должен создать экземпляр коллекции, который затем подвергается как DataColumns собственности.
  • Тип коллекции, выставленный DataColumns, должен осуществить IList.
+0

Спасибо за ваш ответ. Свойство DataColumns объекта DashbboardTableQuery имеет поле, которое представляет собой новый список (). Я бы подумал, что это удовлетворит оба требования к работе Xaml. Еще одно оговорка заключается в том, что объектная модель поступает из службы WCF через веб-ссылку. – mattduffield

+0

@mattduffield: Если это действительно поле, измените его на Свойство. Для работы вашего xaml это действительно должно быть свойство только для чтения или, по крайней мере, свойство, которое имеет инициализированную коллекцию для добавления элементов. – AnthonyWJones

+0

Это свойство с полем, которое завернуто по умолчанию на новый список (). Извините за путаницу. Я согласен, что это может быть свойство только для чтения. – mattduffield