Вы должны инициализировать ContentPropertyAttribute с именем свойства, которое будет представлять содержимое вашего класса. В вашем случае, поскольку вы наследуете от ObservableCollection, это будет свойство Items. К сожалению, свойство Items доступно только для чтения, и это недопустимо, поскольку свойство Content должно иметь установщик. Таким образом, вы должны определить собственное свойство-оболочку для Items и использовать его в своем атрибуте, например:
public class MyCustomItem
{ }
[ContentProperty("MyItems")]
public class MyCustomCollection : ObservableCollection<MyCustomItem>
{
public IList<MyCustomItem> MyItems
{
get { return Items; }
set
{
foreach (MyCustomItem item in value)
{
Items.Add(item);
}
}
}
}
И с тобой должно быть все в порядке. Извините за то, что вы делаете это в C #, когда ваш пример написан на VB, но я действительно отстой в VB и не могу понять даже такую простую вещь правильно ... В любом случае, преобразовать это совсем несложно, так что - надеюсь, это поможет. *