La liaison Wpf CustomControl à une collection ne fonctionne pas

la programmation


J’ai des problèmes de liaison à deux endroits avec un contrôle personnalisé que j’ai écrit pour effectuer une liste Multiselect de balises avec les sélections initialisées à partir d’une propriété de dépendance List.

Cependant, j’ai des problèmes avec la liaison à SelectedTags DependencyProperty. C’est nul.
Cela doit fonctionner à la fois en mode autonome ; et dans un DataGridColumn (j’utilise un DataGridTemplateColumn).
Xaml pour une utilisation autonome :

<cc:TagSelect Width="175"
   MaxHeight="350"
   BorderBrush="Black"
   BorderThickness="1"
   HorizontalAlignment="Center"
   VerticalAlignment="Top"
   SelectedTags="{Binding SomeTags}" />

Xaml pour DataGridUse :

<DataGridTemplateColumn Width="175" Header="Tags">
  <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
      <cc:TagSelect Width="175" SelectedTags="{Binding Tags}" />
    </DataTemplate>
  </DataGridTemplateColumn.CellTemplate>
  <DataGridTemplateColumn.CellEditingTemplate>
    <DataTemplate>
	  <cc:TagSelect Width="175" SelectedTags="{Binding Tags}" />
    </DataTemplate>
  </DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>

Définition du DP :

C#
public List<Tag> SelectedTags
{
    get { return (List<Tag>)GetValue(SelectedTagsProperty); }
	set { SetValue(SelectedTagsProperty, value); }
}
public static readonly DependencyProperty SelectedTagsProperty =
			DependencyProperty.Register("SelectedTags", 
			typeof(List<Tag>), 
            typeof(TagSelect),
			new FrameworkPropertyMetadata(null, 
			FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));

Pour chaque instance du contrôle, SelectedTags est nul ; ce n’est pas contraignant. Il n’y a aucun échec de liaison.

Ce que j’ai essayé :

J’ai essayé toutes les suggestions raisonnables que j’ai trouvées en recherchant ce problème. J’en suis à penser que j’ai quelque chose qui ne va pas dans ma configuration VS pour la solution, mais je ne le vois pas.

Voici un lien vers la solution complète sur Github :

コメント

タイトルとURLをコピーしました