私はクラスマーカーを持っています
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>
最初の方法は非常に簡単ですが、2番目の方法に苦労しています。
MarkesSource を実装するにはどうすればよいですか? UserSpecifiedCollection のアイテムを Marker タイプに変換するにはどうすればよいですか? UserSpecifiedCollection アイテムのプロパティを Marker のプロパティにデータバインドするにはどうすればよいですか?
変換に関しては、ValueConvertor を使用できると思いますが、DataTemplates のような純粋な XAML ソリューションをお勧めします。可能です?