J'utilise le contrôle de l'arborescence dans mon projet silverlight. J'utilise la liaison de données pour lier mon modèle à l'arbre. Cela fonctionne parfaitement.Silverlight Tree view
Après avoir ajouté quelques fonctionnalités à l'arbre, je suis tombé sur deux problèmes:
Quand je change une propriété sur mon modèle, l'arbre ne soit pas mis à jour, même après mon onProperty changé s'appelle et aussi mon le convertisseur n'est pas appelé? (j'ai besoin de cacher l'article quand une propriété spécifique change) (répondu)
Comment cacher un article dans l'arbre? (J'utilise la zone de texte + image comme modèle d'objet)
panneau de la pile est caché, mais conteneur vide reste dans l'arbre
DataTemplate:
<common:HierarchicalDataTemplate ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal" Visibility="{Binding IsAvailable, Converter={StaticResource ItemVisibleConverter} ,Mode=TwoWay}" >
<Image Source="{Binding Converter={StaticResource ImageConverter}}"/>
<controls:Label Name="myItem" Content="{Binding Description, Converter={StaticResource ItemConverter} ,Mode=TwoWay}" Foreground="Black"/>
</StackPanel>
</common:HierarchicalDataTemplate>
Converter: publique objet Convert (valeur d'objet, type targetType, paramètre d'objet, culture ystem.Globalization.CultureInfo) { return GetVisibility (value); }
private Visibility GetVisibility(object value)
{
bool IsVisible= (bool)value;
if (IsAvailableForDownload)
{
return Visibility.Visible;
}
else
{
return Visibility.Collapsed;
}
}
Modèle
public class MyModel: INotifyPropertyChanged
{
public bool IsAvailable
{
get
{
return _IsAvailableForDownload;
}
set
{
_IsAvailableForDownload = value;
onPropertyChanged(this, "IsAvailableForDownload");
}
}
//Code for on property changed event
}
Cordialement
Pouvez-vous publier le Xaml où vous configurez la liaison de données (HierarchialDataTemplate pour votre arborescence) ainsi qu'une petite partie de la classe Modèle montrant votre implémentation de INotifyPropertyChanged? L'affichage du code du convertisseur aiderait aussi. –