В настоящее время я пытаюсь создать ControlTemplate для ItemsControl, который использует Grid в качестве своей ItemsPanel, где каждый элемент расположен горизонтально и разделен с помощью GridSplitter.
Основная цель - иметь динамически привязываемый ItemsControl, в котором все элементы располагаются в ряд и размер каждого элемента может быть изменен с помощью разделителя.
Есть две вещи, которые я не могу обернуть вокруг себя: Как GridSplitter должен автоматически заканчиваться между каждым элементом? Как настроить Grid.Column для каждого элемента.
Если это невозможно сделать с помощью простого шаблона управления, что было бы распространенным и хорошим способом реализации чего-то подобного? Нужно ли для этого написать новый ItemsControl?
Мне нужны фактические (Grid) элементы управления Splitter, поэтому для них могут быть собственные шаблоны ControlTemplates. Также я думаю, что было бы очень полезно иметь дополнительные функциональные возможности макета для ячеек (GridLengthUnitType, Stretch, Alignment).
Так что при развертывании своего собственного, я думаю, мне понадобится настраиваемый ItemsControl (который генерирует разделители для каждого элемента) и настраиваемая панель (которая ведет себя как сетка onerow / onecolumn - так что нет необходимости в прикрепленных Grid.Row, Grid Свойства столбца. (Ориентация будет достаточной), которые могут принимать элементы управления Splitter и знают, как с ними обращаться в плане компоновки.
Что вы думаете об этом подходе? Является ли предпочтительным или хорошим способом?