Доступ к производным свойствам класса из коллекции базовых классов - PullRequest
0 голосов
/ 10 июля 2010

Я создал производный класс из базового класса и добавил объекты производного класса в коллекцию базового класса. Позднее, когда я пытаюсь преобразовать объекты коллекции в производный класс, возникает ошибка, и я не могу получитьмои методы и свойства переопределения. Как я могу обойти это ??1001*

Я пытаюсь переопределить класс обводки в wpf inkcanvas. Но доступная коллекция имеет базовую коллекцию чернил.Свойства, которые я добавил, недоступны. Справка Pls

1 Ответ

2 голосов
/ 11 июля 2010

Ваша проблема в том, что StrokeCollection реализует пользовательский TypeConverter, который сериализует данные обводки в эффективном двоичном формате, называемом Формат сериализации чернил (ISF), с использованием метода StrokeCollection.Save().Когда ваши штрихи конвертируются в ISF, все дополнительные данные теряются, поэтому при перезагрузке они создаются как обычные Stroke объекты (не ваш подкласс).Вот почему вы не можете привести их к своему подклассу.

Некоторые из ваших вариантов:

  • Подкласс StrokeCollection и реализация нового TypeConverter для вашего подкласса
  • Используйте другой метод сериализации, который игнорирует TypeConverter
  • Вручную сериализовать ваш StrokeCollection (например, скопировав Strokes в List<Stroke> и сериализовав это)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...