Exemplo - Mostrar ou ocultar controles dinamicamente na caixa de diálogo padrão de dados

É possível mostrar / ocultar e ativar / desativar controla por código do PowerShell.

Por exemplo, é possível exibir / ocultar ou Ative / Desative os controles para determinados tipos de arquivos, dependendo do valor de outra propriedade.

Os controles podem ser manipulados em qualquer momento no código do PowerShell. Acesse esses controles usando a função $dsWindow.FindName("thenameofyourcontrol"). Um pré-requisito deste capaibility é que seu controle exibe um nome de atributo com um nome exclusivo.

Exemplo

Para este exemplo, vamos desativar o título TextBox durante a edição de um arquivo. A caixa de texto para o título da propriedade obtém o nome txtTitle desta maneira:

<TextBox Name="txttitle" ....

Dentro de InitializeWindow, vamos verificar se a caixa de diálogo é de arquivo e se está no modo de edição.

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

Como você pode ver, com FindName("nameofthecontrol"), podemos acessar a propriedade IsEnabled ou todas as outras propriedades que esse tipo de controle pode oferecer.

A mesma técnica pode ser aplicado dentro de manipuladores de eventos para influenciar o comportamento de cada controle enquanto o usuário inserir dados.

Exemplo do CAD

No caso do CAD, a sintaxe é o mesmo, exceto para verificar se a caixa de diálogo está no modo de criação ou edição.

Dentro de InitializeWindow, verificamos se a caixa de diálogo é de arquivo e se está no modo de edição:

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