Это можно показать / скрыть и включить / отключить элементы управления в коде 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
}
}