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