У меня есть тип объекта (назовите его «транспортное средство»), который может иметь переменное количество атрибутов, каждый из которых имеет свой тип (некоторые атрибуты - это одно число, некоторые - три числа в одном атрибуте).Порядок атрибутов имеет значение (это геометрические преобразования).
Я собрал атрибуты класса транспортного средства в коллекцию List
.Краткий обзор классов (Предположим, что это все свойства с базовыми полями):
* См. Редактирование ниже *
class Transformation
{
string Type; // Might make sense to make this an enum
float[] Value; // This always holds either 1, 3, or 5 values depending on Type.
}
class Vehicle
{
List<Transformation> MyTransformations;
}
Когда я выбираю конкретный vehicle
Например, я хотел бы отобразить преобразования на панели данных и связать их, чтобы пользователь мог их редактировать (и добавлять / удалять преобразования).
Какова лучшая стратегия для реализации этого в WPF?Я строю прокручиваемый StackPanel
через код?Есть ли «умный» способ сделать это с помощью шаблонов типов?Является ли ошибкой удерживать преобразования разной длины в одном классе (нужно ли разбивать их на разные классы для каждого типа преобразования)?
Я предполагаю, что панель данных будет выглядеть примерно так:
<b>Transformations</b>
Rotate 6.7 2.3 8.7
UniformScale 1.0
Translate 2.2 2.0 1.0
С полосой прокрутки, работающей с правой стороны, так как я не знаю, сколько преобразований может иметь каждый объект.
* Редактировать * За предложение вкомментарий и дальнейшие эксперименты, я сделал 3 отдельных класса для 3 видов атрибутов.Все они получены из Transformation
, так что у меня все еще есть List<Transformation>
в моем Vehicle
классе.
Так что мой вопрос сейчас состоит в том, как создать прокручиваемый дисплей, который содержит переменное число Transformation
объекты?