Ejemplo: mostrar u ocultar controles de forma dinámica en el cuadro de diálogo Estándar de datos

Es posible mostrar / ocultar y activar / desactivar controla mediante códigos de PowerShell.

Por ejemplo, puede mostrar / ocultar o Activar / desactivar controles para determinados tipos de archivo o según el valor de otra propiedad.

Los controles se pueden manipular en cualquier momento en el código de PowerShell. Acceda a estos controles mediante la función $dsWindow.FindName("thenameofyourcontrol"). Un requisito previo de este capaibility es que el control muestra un nombre de atributo con un nombre exclusivo.

Ejemplo

En este ejemplo, se desactivará el título de cuadro de texto durante la edición de un archivo. El cuadro de texto para el título de la propiedad se llamará txtTitle, como en este ejemplo:

<TextBox Name="txttitle" ....

Dentro de InitializeWindow, comprobaremos si el cuadro de diálogo es un cuadro de diálogo de archivo y si está en modo de edición.

function InitializeWindow
{
  $dialogName = $dsWindow.DataContext.GetType().Name
  if($dialogname--eq-"fileviewmodel"--and-$dswindow.name--eq-"filewindow")
  {
    $dsWindow.FindName("txttitle").IsEnabled=$false
  }
}

Como puede ver, con FindName("nameofthecontrol"), podemos acceder a la propiedad IsEnabled o a todas las demás propiedades que este tipo de control pueda ofrecer.

La misma técnica se pueden aplicar los controladores de eventos para influir en el comportamiento de cada control mientras que el usuario introduzca datos.

Ejemplo de CAD

En el caso de CAD, la sintaxis es el mismo, excepto para comprobar si el cuadro de diálogo Crear o está en modo de edición.

Dentro de InitializeWindow, comprobaremos si el cuadro de diálogo es un cuadro de diálogo de archivo y si está en modo de edición:

function InitializeWindow 
{
  $dialogName = $dsWindow.DataContext.GetType().Name
  if($Prop["_EditMode"].Value -eq $true)
  {
    $dsWindow.FindName("txttitle").IsEnabled=$false 
  }
}