Lier la visibilité de la propriété à une variable
J'ai un Border
avec Label
à l'intérieur d'un Window
,
<Border x:Name="Border1" BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Left" Height="21" Margin="229,164,0,0" VerticalAlignment="Top" Width="90" Opacity="0.5">
<Grid>
<Label Content="test"/>
</Grid>
</Border>
J'ai aussi un Variable
:
public bool vis = false;
Comment ai-je pu lier la vis
variable avec bordure Visibility
propriété?
Voir ma réponse, j'ai déjà vous recommandons d'utiliser la Liaison sur une propriété.
Je vous demande pardon. Votre réponse n'existait pas quand j'ai posté mon commentaire.
Il était environ le même temps, je pense. Désolé pour ça.
Je vous demande pardon. Votre réponse n'existait pas quand j'ai posté mon commentaire.
Il était environ le même temps, je pense. Désolé pour ça.
OriginalL'auteur 7zawel | 2013-02-04
Vous devez vous connecter pour publier un commentaire.
Si vous avez déjà votre variable boolean dans un viewmodel, vous avez deux choses à faire:
en faire une propriété, comme:
public bool vis { get; set; }
Et vous avez besoin d'une visibilité convertisseur pour votre propriété, alors:
Il est décrit ici:
http://social.msdn.microsoft.com/Forums/en/wpf/thread/3c0bef93-9daf-462f-b5da-b830cdee23d9
L'exemple suppose que vous avez un viewmodel et l'utilisation
Binding
Voici le code de démonstration que j'ai faite à partir de votre extrait de code:
ViewModel:
XAML:
Certains Codebehind rapide testcode: (en fait, est MainWindow.xaml.cs)
Avoir mis à jour ma réponse pour votre rapidité d'utilisation. Je suppose que vous savez déjà de base de la Liaison fonctionne. Si vous avez besoin de plus d'informations à ce sujet, dites-le moi et je l'ai mise à jour de ma réponse, là encore,
ok, je viens de mettre en vis propriété à false, ce qui signifie caché, maintenant, après j'ai mis le datacontex rien ne se passe !
Vous avez besoin de INotifyPropertyChanged. Je fais un meilleur exemple de votre extrait. Un moment svp
vais poster mes mises à jour de la démo de toute façon... vous êtes les bienvenus!
OriginalL'auteur Mare Infinitus
Vous n'avez pas besoin de faire de n'importe quel convertisseur.
Ajouter une liaison à une propriété de Visibilité pour la frontière:
Et puis créer la propriété de la Visibilité dans un viewmodel comme ceci:
Donc, maintenant vous pouvez rendre Visible ou Caché de votre propriété de Visibilité comme suit:
Mais rappelez-vous, la Visibilité enum est situé dans le Système.Les fenêtres de l'espace de noms, de sorte que votre dernier doit contenir
using System.Windows;
.OriginalL'auteur Ladislav Ondris
Vous ne pouvez pas lier le terrain. Vous ne pouvez lier des propriétés publiques ou les propriétés de dépendance.
À l'aide de la propriété publique (que vous avez à mettre en œuvre
INotifyPropertyChanged
interface d'avoir la propriété->liaison):Le code XAML est:
OriginalL'auteur Cédric Bignon
D'abord, vous aurez besoin de faire vis-à-Propriété:
Alors vous aurez besoin d'un ValueConverter.
Vous aurez besoin de créer une instance de l'convertisseur comme dans vos ressources:
Ensuite, vous pouvez lier votre frontière comme:
OriginalL'auteur TrueEddie