Exemple : permet d'afficher ou de masquer les contrôles de manière dynamique dans la boîte de dialogue Data Standard

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.

Exemple

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 
  }
}