Пример – показать или скрыть элементы управления динамически в диалоговом окне Data Standard

Это можно показать / скрыть и включить / отключить элементы управления в коде PowerShell.

Например, можно показать / скрыть или включить / отключить элементы управления для определенных типов файлов, или зависит от значения другого свойства.

Элементы управления можно изменять в любое время в коде PowerShell. Эти элементы управления доступны через функцию $dsWindow.FindName("thenameofyourcontrol"). Для использования этой возможности элемент управления должен отображать атрибут Name с уникальным значением.

Пример

В этом примере мы отключить Title TextBox при редактировании файла. TextBox для заголовка свойства получит имя txtTitle, как показано ниже:

<TextBox Name="txttitle" ....

В InitializeWindow мы проверим, является ли диалоговое окно диалоговым окном файла и находится ли оно в режиме редактирования.

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

Как видите, с помощью FindName("nameofthecontrol") можно получить доступ к свойству IsEnabled или ко всем другим свойствам, которые может предоставить этот тип элемента управления.

Такой же способ можно применять в обработчики событий для задания поведения каждого элемента управления при вводе данных пользователя.

Пример САПР

В случае САПР используется тот же синтаксис, за исключением проверки того, находится диалоговое окно в режиме создания или редактирования.

Внутри InitializeWindow мы проверяем, является ли диалоговое окно диалоговым окном файла и находится ли оно в режиме редактирования:

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