У меня есть класс Marker
class Marker {
public double Position {get; set;}
public string Label {get; set;}
}
и пользовательский элемент управления, который, помимо других свойств, предоставляет коллекцию маркеров
class MyControl {
public ObservableCollection<Marker> Markers {get; set;}
}
Я хотел бы имитировать поведение ItemsControl и позволять пользователямМой компонент для указания маркеров либо напрямую, либо используя аналогию ItemsSource.Более того, я хотел бы, чтобы оба метода поддерживали привязку данных (предпочтительно в XAML)
Маркеры напрямую
<my:MyControl>
<my:MyControl.Markers>
<my:Marker Position="{Binding X}" />
</my:MyControl.Markers>
</my:MyControl>
Маркер с использованием MarkersSource
<my:MyControl MarkersSource={Binding UserSpecifiedCollection}">
</my:MyControl>
Первый метод довольно прост, но я борюсь со вторым.
Как я могу реализовать MarkesSource?Каким образом элементы UserSpecifiedCollection могут быть преобразованы в тип маркера?Каким образом свойства элементов UserSpecifiedCollection могут быть привязаны к свойствам маркера на основе данных?
Относительно преобразования Я думаю, что можно использовать ValueConvertor, но я бы предпочел чистое решение XAML, что-то вроде DataTemplates.Это возможно?