2008-12-12 3 views
3

Эй, парни/девушки. У меня есть приложение silverlight 2, у которого есть ObservableCollection класса из отдельной сборки/lib. Когда я устанавливаю свой ListBox.ItemsSource в этой коллекции и запускаю ее, я получаю код ошибки: 4004 «System.ArgumentException: значение не входит в ожидаемый диапазон». Вот часть кода:Silverlight 2 Код ошибки: 4004

public partial class Page : UserControl 
{ 
    ObservableCollection<Some.Lib.Owner> ooc; 

    public Page() 
    { 

     ooc = new ObservableCollection<Some.Lib.Owner>(); 
     Some.Lib.Owner o1 = new Some.Lib.Owner() { FirstName = "test1" }; 
     Some.Lib.Owner o2 = new Some.Lib.Owner() { FirstName = "test2" }; 
     Some.Lib.Owner o3 = new Some.Lib.Owner() { FirstName = "test3" }; 
     ooc.Add(o1); 
     ooc.Add(o2); 
     ooc.Add(o3); 

     InitializeComponent(); 
     lb1.ItemsSource = ooc; 
    } 
} 

Но когда я создаю класс Владелец в этом же проекте, все работает отлично. Есть некоторые вещи безопасности, происходящие за кулисами? Кроме того, я использую параметр генерации html-страницы, а не параметр aspx, когда я создал это приложение Silverlight 2.

ответ

1

Вы пытаетесь использовать стандартную библиотеку классов или «Библиотека классов Silverlight»?

Поскольку Silverlight 2 использует подмножество CLR, он не может получить доступ к библиотекам стандартных классов, которые были скомпилированы с использованием полной CLR. Чтобы использовать внешнюю сборку, вы должны создать ее как «Библиотека классов Silverlight». Это создаст проект, который включает только пространства имен, доступные для Silverlight, и позволит вам ссылаться на сборку в вашем проекте Silverlight.

За дополнительной информацией обратитесь к статье ".NET Framework Class Library for Silverlight" MSDN.

+0

Да, я создал его как библиотеку классов Silverlight. После бесчисленного количества часов поиска «Google» я просто сдался. Сейчас все в одном проекте. – jkidv 2008-12-18 17:35:08