Il est possible d'afficher ou de masquer et activer / désactiver les commandes via PowerShell.
Par exemple, vous pouvez afficher / masquer ou activer / désactiver les contrôles pour certains types de fichiers ou en fonction de la valeur d'une autre propriété.
Les commandes peuvent être manipulés à tout moment dans le code PowerShell. Accédez à ces contrôles via la fonction $dsWindow.FindName("thenameofyourcontrol"). Un prérequis pour cette capaibility est que votre contrôle affiche un nom d’attribut avec un nom unique.
Pour cet exemple, vous allez désactiver la zone de texte Titre lors de la modification d’un fichier. La zone de texte de la propriété titre le nom txtTitle, comme suit :
<TextBox Name="txttitle" ....
Dans InitializeWindow, vous allez vérifier si la boîte de dialogue est une boîte de dialogue de fichier et si elle est en mode de modification.
function InitializeWindow
{
$dialogName = $dsWindow.DataContext.GetType().Name
if($dialogname--eq-"fileviewmodel"--and-$dswindow.name--eq-"filewindow")
{
$dsWindow.FindName("txttitle").IsEnabled=$false
}
}
Comme vous pouvez le voir, avec FindName("nameofthecontrol"), vous pouvez accéder à la propriété IsEnabled ou à toute autre propriété que ce type de contrôle peut offrir.
La même procédure peut être appliquée à des gestionnaires d’événements pour avoir une influence sur le comportement de chaque commande lorsque l’utilisateur d’entrer des données.
Exemple de CAO
Dans le cas de la CAO, la syntaxe est identique, à l’exception de la case à cocher si la boîte de dialogue est en mode de création ou de modification.
Dans InitializeWindow, vérifiez si la boîte de dialogue est une boîte de dialogue de fichier et si elle est en mode de modification :
function InitializeWindow
{
$dialogName = $dsWindow.DataContext.GetType().Name
if($Prop["_EditMode"].Value -eq $true)
{
$dsWindow.FindName("txttitle").IsEnabled=$false
}
}