Коллекция объявлена ​​в XAML висит Silverlight - PullRequest
4 голосов
/ 05 августа 2010

Я играл с объявлением объектов в XAML.У меня есть эти классы в моей сборке Silverlight:

public class TextItem
{
    public string TheValue { get; set; }
}

public class TextItemCollection
{
    public ObservableCollection<TextItem> TextItems { get; set; }
}

Затем у меня есть это в моем XAML:

<UserControl.Resources>
    <app:TextItemCollection x:Key="TextItemsResource">
        <app:TextItemCollection.TextItems>
            <app:TextItem TheValue="Hello world I am one of the text values"/>
            <app:TextItem TheValue="And I am another one of those text items"/>
            <app:TextItem TheValue="And I am yet a third!"/>
        </app:TextItemCollection.TextItems>
    </app:TextItemCollection>
</UserControl.Resources>

По какой-то причине, если я включаю этот узел при попытке отладкиприложение, Silverlight зависает (я просто вижу кружащийся синий кружок загрузки)Если я закомментирую этот узел, он сразу запустится.

Есть идеи?

1 Ответ

6 голосов
/ 05 августа 2010

По проверке кода: свойство TextItems имеет значение null.Это не поможет парсеру XAML.

По результатам эксперимента: я получаю исключение при запуске приложения в отладчике (я использую Silverlight 4):

System.Windows.Markup.XamlParseException occurred
  Message=Collection property '__implicit_items' is null. [Line: 12 Position: 40]
  LineNumber=12
  LinePosition=40
  StackTrace:
       at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
  InnerException: 

инициализировать TextItems.Вы также должны сделать сеттер приватным, чтобы другие не могли вас испортить.Попробуйте это, вы должны найти это работает нормально:

public class TextItemCollection
{
    public TextItemCollection()
    {
        TextItems = new ObservableCollection<TextItem>();
    }

    public ObservableCollection<TextItem> TextItems { get; private set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...