WPF - Lier UserControl de la visibilité à une propriété
J'ai une ListView lié à ObservableCollection. Les données sont chargées à partir d'internet, puis ajoutées à la collection. Le téléchargement ne prend que quelques secondes et je veux indiquer utilisateur que les données en cours de chargement.
J'ai créé un UserControl qui indique une activité. Je l'ai placé à l'intérieur de ControlTemplate.
<ControlTemplate x:Key="ListViewControlTemplate1" TargetType="{x:Type ListView}">
<Grid>
<local:ActivityIndicatorControl
HorizontalAlignment="Center"
Height="Auto"
Margin="0"
VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
Je voudrais lier la Visibilité de ActivityIndicatorControl
à une propriété, disons bool IsLoading
et réglez-le Visible et s'est Effondré en conséquence.
Merci!
OriginalL'auteur Martin | 2012-05-15
Vous devez vous connecter pour publier un commentaire.
Je vous conseille d'utiliser un
IValueConverter
à accepter votre boolean, et retour d'un membre de la Visibilité de l'énumération.Ici est un bon exemple: http://jeffhandley.com/archive/2008/10/27/binding-converters---visibilityconverter.aspx
Le XAML devrait ressembler à ceci:
Vous définissez d'abord une ressource pour le convertisseur (mettre cela dans un dictionnaire de ressources):
Puis de changer de modèle comme ceci:
Oui, le contrôle UserControl aurait le même DataContext de la Grille. En raison de cela, vous pourriez mettre la liaison de visibilité sur le UserControl avec aucun problème.
Une petite remarque: le changement de BooleanToVisibiltyConverter à BooleanToVisibilityConverter (ajouter manquant "je") et il ressemble à ceci: <BooleanToVisibilityConverter x:Key="myBoolToVisibilityConverter" />
Merci pour remarquer! J'ai mis à jour la réponse.
OriginalL'auteur davisoa
Utilisation .NET intégré dans le Convertisseur de
.NET 3 a construit dans le BooleanToVisibilityConverter.
(Note: ne Peut pas être disponibles sur toutes les plates-formes, ex: mobile)
D'abord l'ajouter à vos Ressources
Puis de l'utiliser sur un élément
Inversant
Comment puis-je inverser BooleanToVisibilityConverter?
Si vous voulez inverser le convertisseur (ex: masquer l'élément lorsque votre propriété est vraie), cette réponse a une implémentation personnalisée de
IValueConverter
qui prend en charge que par le XAMLOriginalL'auteur Walter Stabosz