Je classe Markercomportement Mimic ItemsControl dans le contrôle personnalisé
class Marker {
public double Position {get; set;}
public string Label {get; set;}
}
et contrôle personnalisé, entre autres propriétés, expose la collection de marqueurs
class MyControl {
public ObservableCollection<Marker> Markers {get; set;}
}
Je voudrais imiter le comportement ItemsControl et permettre les utilisateurs de mon composant pour spécifier des marqueurs directement ou en utilisant l'analogie ItemsSource. De plus, je voudrais deux méthodes pour soutenir la liaison de données (de préférence en XAML)
marqueurs directement
<my:MyControl>
<my:MyControl.Markers>
<my:Marker Position="{Binding X}" />
</my:MyControl.Markers>
</my:MyControl>
marqueur en utilisant MarkersSource
<my:MyControl MarkersSource={Binding UserSpecifiedCollection}">
</my:MyControl>
La première méthode est assez simple mais je Je me bats avec le second.
Comment puis-je implémenter MarkesSource? Comment les éléments de UserSpecifiedCollection peuvent-ils être convertis en type Marqueur? Comment les propriétés des éléments UserSpecifiedCollection peuvent-elles être databound aux propriétés de Marker?
Cordialement conversion Je pense qu'un ValueConvertor peut être utilisé, mais je préférerais une solution XAML pure, quelque chose comme DataTemplates. C'est possible?
La mise en évidence de la syntaxe dépend des balises de la question. –
@Rick Sladkey: Alors j'ai entendu; ça serait sûrement sympa si ça devait être un peu plus intelligent que ça ... –
C'était un aha pour moi pourquoi ça agissait différemment parfois. –