<Style TargetType="{x:Type Button}"> <Style.Triggers> <MultiDataTrigger> <MultiDataTrigger.Conditions> <!-- This binding refers to the actual WPF element. --> <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOver}" Value="True"/> <Condition Binding="{Binding Path=Role}" Value="Admin"/> </MultiDataTrigger.Conditions> <Setter Property="Button.Background" Value="Orange" /> </MultiDataTrigger> </Style.Triggers> </Style>
<Style x:Key="uniquementAdmin" TargetType="Control"> <Style.Triggers> <DataTrigger Binding="{Binding Path=isUserConnect}" Value="True"> <Setter Property="Visibility" Value="Visible" /> </DataTrigger> </Style.Triggers> </Style>
<MenuItem Header="_Utilisateur" Name="menuUtilisateur" HorizontalAlignment="Center" VerticalAlignment="Center" Height="23" Margin="0" > <MenuItem Header="_Mes Paramètres" Name="menuMesParametres" Click="menuMesParametres_Click" /> <MenuItem Header="_Gestion Utilisateurs" Name="menuGestionUtilisateur" Style="{StaticResource uniquementAdmin}" Visibility="Collapsed" /> </MenuItem>
{ private MySQLConnection sql = new MySQLConnection(false); public User user; public bool isUserConnect; public MainWindow() { isUserConnect = false; InitializeComponent(); user = new User(this); }
private bool userConnected = false; public bool isUserConnect { get { return userConnected; } set { userConnected = value; } } public MainWindow() { isUserConnect = false; InitializeComponent(); user = new User(this);
Te baser sur un style pour savoir si tu dois afficher ou non ne me parait pas une bonne idée.
Tu devrais te baser sur un flag quelconque.
Regarde le pattern MVVM, il est très pratique : http://japf.developpez.com/tutoriels...-et-testables/
Une framework MVVM simple et pratique : http://www.galasoft.ch/mvvm/
Avec ça, tu pourra avoir dans ton VM un flag style isAdmin et tu pourras baser tes triggers dessus plutot.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question