Как добавить к значению пользовательского (не зависимого) значения свойства коллекции в разметке XAML - PullRequest
0 голосов
/ 03 ноября 2010

Если у меня есть простой объект:

class MyObject
{
    public string MyValueProperty { get; set; }
}

и если я хочу создать его экземпляр в XAML и установить свойство (как показано ниже), это работает:

<local:MyObject MyValueProperty="SomeValue" />

Однако, если у моего объекта есть свойство collection :

class MyObject
{
   public MyObject() { this.MyCollectionProperty = new List<string>(); }

   public IList<string> MyCollectionProperty { get; set; }
}

тогда я не могу понять, как добавлять элементы в него через XAML. То, что я хотел бы сделать, это что-то вроде:

<local:MyObject>
    <local:MyObject.MyCollectionProperty>
         <sys:String>One</sys:String>
         <sys:String>Two</sys:String>
         <sys:String>etc</sys:String>
    </local:MyObject.MyCollectionProperty>
</local:MyObject>

Я пробовал это, но я получаю исключение синтаксического анализа, утверждающее, что я не могу установить String для свойства типа IList<string>, и я понимаю, что, возможно, смогу обойти это, добавив экземпляр `List ' к разметке, но я хочу избежать этого.

Есть предложения?

1 Ответ

0 голосов
/ 03 ноября 2010

Сработало - проблема была в том, что мое свойство было определено как IList<T>, и поэтому синтаксический анализатор XAML не мог понять, как создать экземпляр соответствующего экземпляра (даже если у него уже был экземпляр

Изменение объявления свойства на List<string>, чтобы оно заработало:

class MyObject
{
   public MyObject() { this.MyCollectionProperty = new List<string>(); }

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