Partilhar via


Creating a Wide View (Criar uma Vista Ampla)

Uma vista alargada apresenta um único valor para cada objeto apresentado. O valor exibido pode ser o valor de uma propriedade de objeto .NET ou o valor de um script. Por padrão, não há rótulo ou cabeçalho para esse modo de exibição.

Um ecrã de vista ampla

O exemplo a seguir mostra como o Windows PowerShell exibe o objeto System.Diagnostics.Process que é retornado pelo cmdlet Get-Process quando sua saída é canalizada para o cmdlet Format-Wide. (Por padrão, o cmdlet Get-Process retorna uma exibição de tabela.) Neste exemplo, as duas colunas são usadas para exibir o nome do processo para cada objeto retornado. O nome da propriedade do objeto não é exibido, apenas o valor da propriedade.

Get-Process | Format-Wide
AEADISRV                     agrsmsvc
Ati2evxx                     Ati2evxx
audiodg                      CCC
CcmExec                      communicator
Crypserv                     csrss
csrss                        DevDtct2
DM1Service                   dpupdchk
dwm                          DxStudio
EXCEL                        explorer
GoogleToolbarNotifier        GrooveMonitor
hpqwmiex                     hpservice
Idle                         InoRpc
InoRT                        InoTask
ipoint                       lsass
lsm                          MOM
MSASCui                      notepad
...                          ...

Definindo a visão ampla

O XML a seguir mostra o esquema de exibição ampla para o objeto System.Diagnostics.Process.

<View>
  <Name>process</Name>
  <ViewSelectedBy>
    <TypeName>System.Diagnostics.Process</TypeName>
  </ViewSelectedBy>
  <GroupBy>...</GroupBy>
  <Controls>...</Controls>
  <WideControl>
    <WideEntries>
      <WideEntry>
        <WideItem>
          <PropertyName>ProcessName</PropertyName>
        </WideItem>
      </WideEntry>
    </WideEntries>
  </WideControl>
</View>

Os seguintes elementos XML são usados para definir uma exibição ampla:

  • O elemento View é o elemento pai do modo de exibição amplo. (Este é o mesmo elemento pai para as exibições de tabela, lista e controle personalizado.)
  • O elemento Name especifica o nome do modo de exibição. Este elemento é necessário para todas as vistas.
  • O elemento ViewSelectedBy define os objetos que usam o modo de exibição. Este elemento é obrigatório.
  • O elemento GroupBy define quando um novo grupo de objetos é exibido. Um novo grupo é iniciado sempre que o valor de uma propriedade ou script específico é alterado. Este elemento é opcional.
  • O Controles elementos define os controles personalizados que são definidos pela exibição ampla. Os controles oferecem uma maneira de especificar melhor como os dados são exibidos. Este elemento é opcional. Um modo de exibição pode definir seus próprios controles personalizados ou pode usar controles comuns que podem ser usados por qualquer modo de exibição no arquivo de formatação. Para obter mais informações sobre controles personalizados, consulte Criando controles personalizados.
  • O elemento WideControl e seus elementos filho definem o que é exibido na exibição. No exemplo anterior, o modo de exibição foi projetado para exibir a propriedade System.Diagnostics.Process.ProcessName.

Para obter um exemplo de um arquivo de formatação completo que define uma exibição ampla simples, consulte Wide View (Basic).

Fornecendo definições para sua visão ampla

Exibições amplas podem fornecer uma ou mais definições usando os elementos filho do elemento WideControl. Normalmente, um modo de exibição terá apenas uma definição. No exemplo a seguir, o modo de exibição fornece uma única definição que exibe a propriedade System.Diagnostics.Process.ProcessName. Uma exibição ampla pode exibir o valor de uma propriedade ou o valor de um script (não mostrado no exemplo).

<WideControl>
  <AutoSize/>
  <ColumnNumber></ColumnNumber>
  <WideEntries>
    <WideEntry>
      <WideItem>
        <PropertyName>ProcessName</PropertyName>
      </WideItem>
    </WideEntry>
  </WideEntries>
</WideControl>

Os seguintes elementos XML podem ser usados para fornecer definições para uma ampla exibição:

  • O elemento WideControl e seus elementos filho definem o que é exibido na exibição.
  • O elemento AutoSize especifica se o tamanho da coluna e o número de colunas são ajustados com base no tamanho dos dados. Este elemento é opcional.
  • O elemento ColumnNumber especifica o número de colunas exibidas na visualização ampla. Este elemento é opcional.
  • O elemento WideEntries fornece as definições do modo de exibição. Na maioria dos casos, uma vista terá apenas uma definição. Este elemento é obrigatório.
  • O elemento WideEntry fornece uma definição do modo de exibição. É necessário pelo menos um WideEntry; no entanto, não há limite máximo para o número de elementos que você pode adicionar. Na maioria dos casos, uma vista terá apenas uma definição.
  • O elemento EntrySelectedBy especifica os objetos que são exibidos por uma definição específica. Esse elemento é opcional e é necessário somente quando você define vários elementos WideEntry que exibem objetos diferentes.
  • O elemento WideItem especifica os dados exibidos pelo modo de exibição. Em contraste com outros tipos de modos de exibição, um controle amplo pode exibir apenas um item.
  • O elemento PropertyName especifica a propriedade cujo valor é exibido pelo modo de exibição. Você deve especificar uma propriedade ou um script, mas não pode especificar ambos.
  • O elemento ScriptBlock especifica o script cujo valor é exibido pelo modo de exibição. Você deve especificar um script ou uma propriedade, mas não pode especificar ambos.
  • O elemento FormatString especifica um padrão usado para exibir os dados. Este elemento é opcional.

Para obter um exemplo de um arquivo de formatação completo que define uma definição de exibição ampla, consulte Wide View (Basic).

Definindo os objetos que usam o modo de exibição amplo

Há duas maneiras de definir quais objetos .NET usam a exibição ampla. Você pode usar o elemento ViewSelectedBy para definir os objetos que podem ser exibidos por todas as definições do modo de exibição ou pode usar o elemento EntrySelectedBy para definir quais objetos são exibidos por uma definição específica do modo de exibição. Na maioria dos casos, um modo de exibição tem apenas uma definição, portanto, os objetos geralmente são definidos pelo elemento ViewSelectedBy.

O exemplo a seguir mostra como definir os objetos que são exibidos pelo modo de exibição amplo usando os elementos ViewSelectedBy e TypeName. Não há limite para o número de TypeName elementos que você pode especificar, e sua ordem não é significativa.

<View>
  <Name>System.ServiceProcess.ServiceController</Name>
  <ViewSelectedBy>
    <TypeName>System.Diagnostics.Process</TypeName>
  </ViewSelectedBy>
  <WideControl>...</WideControl>
</View>

Os seguintes elementos XML podem ser usados para especificar os objetos que são usados pela exibição ampla:

  • O elemento ViewSelectedBy define quais objetos são exibidos pela exibição ampla.
  • O elemento TypeName especifica o .NET exibido pelo modo de exibição. O nome de tipo .NET totalmente qualificado é necessário. Você deve especificar pelo menos um tipo ou conjunto de seleção para a exibição, mas não há um número máximo de elementos que podem ser especificados.

Para obter um exemplo de um arquivo de formatação completo, consulte Wide View (Basic).

O exemplo a seguir usa os elementos ViewSelectedBy e SelectionSetName. Use conjuntos de seleção onde você tenha um conjunto relacionado de objetos que são exibidos usando vários modos de exibição, como quando você define um modo de exibição amplo e um modo de exibição de tabela para os mesmos objetos. Para obter mais informações sobre como criar um conjunto de seleção, consulte Definindo conjuntos de seleção.

<View>
  <Name>System.ServiceProcess.ServiceController</Name>
  <ViewSelectedBy>
    <SelectionSetName>.NET Type Set</SelectionSetName>
  </ViewSelectedBy>
  <WideControl>...</WideControl>
</View>

Os seguintes elementos XML podem ser usados para especificar os objetos que são usados pela exibição ampla:

  • O elemento ViewSelectedBy define quais objetos são exibidos pela exibição ampla.
  • O elemento SelectionSetName especifica um conjunto de objetos que podem ser exibidos pelo modo de exibição. Você deve especificar pelo menos um conjunto de seleção ou tipo para o modo de exibição, mas não há um número máximo de elementos que podem ser especificados.

O exemplo a seguir mostra como definir os objetos exibidos por uma definição específica do modo de exibição amplo usando o elemento EntrySelectedBy. Usando esse elemento, você pode especificar o nome do tipo .NET do objeto, um conjunto de seleção de objetos ou uma condição de seleção que especifica quando a definição é usada. Para obter mais informações sobre como criar condições de seleção, consulte Definindo condições para exibição de dados.

<WideEntry>
  <EntrySelectedBy>
    <TypeName>.NET Type</TypeName>
  </EntrySelectedBy>
</WideEntry>

Os seguintes elementos XML podem ser usados para especificar os objetos que são usados por uma definição específica da exibição ampla:

  • O elemento EntrySelectedBy define quais objetos são exibidos pela definição.
  • O elemento TypeName especifica o .NET exibido pela definição. Ao usar esse elemento, o nome do tipo .NET totalmente qualificado é necessário. Você deve especificar pelo menos um tipo, conjunto de seleção ou condição de seleção para a definição, mas não há um número máximo de elementos que podem ser especificados.
  • O elemento SelectionSetName (não mostrado) especifica um conjunto de objetos que podem ser exibidos por essa definição. Você deve especificar pelo menos um tipo, conjunto de seleção ou condição de seleção para a definição, mas não há um número máximo de elementos que podem ser especificados.
  • O elemento SelectionCondition (não mostrado) especifica uma condição que deve existir para que essa definição seja usada. Você deve especificar pelo menos um tipo, conjunto de seleção ou condição de seleção para a definição, mas não há um número máximo de elementos que podem ser especificados. Para obter mais informações sobre como definir condições de seleção, consulte Definindo condições para exibição de dados.

Exibindo grupos de objetos em um modo de exibição amplo

Você pode separar os objetos que são exibidos pela visualização ampla em grupos. Isso não significa que você define um grupo, apenas que o Windows PowerShell inicia um novo grupo sempre que o valor de uma propriedade ou script específico é alterado. No exemplo a seguir, um novo grupo é iniciado sempre que o valor da propriedade System.ServiceProcess.ServiceController.ServiceType é alterado.

<GroupBy>
  <Label>Service Type</Label>
  <PropertyName>ServiceType</PropertyName>
</GroupBy>

Os seguintes elementos XML são usados para definir quando um grupo é iniciado:

  • O elemento GroupBy define a propriedade ou o script que inicia o novo grupo e define como o grupo é exibido.
  • O elemento PropertyName especifica a propriedade que inicia um novo grupo sempre que seu valor é alterado. Você deve especificar uma propriedade ou script para iniciar o grupo, mas não pode especificar ambos.
  • O elemento ScriptBlock especifica o script que inicia um novo grupo sempre que seu valor é alterado. Você deve especificar um script ou propriedade para iniciar o grupo, mas não pode especificar ambos.
  • O elemento Label define um rótulo que é exibido no início de cada grupo. Além do texto especificado por esse elemento, o Windows PowerShell exibe o valor que acionou o novo grupo e adiciona uma linha em branco antes e depois do rótulo. Este elemento é opcional.
  • O elemento CustomControl define um controle que é usado para exibir os dados. Este elemento é opcional.
  • O elemento CustomControlName especifica um controle comum ou de exibição que é usado para exibir os dados. Este elemento é opcional.

Para obter um exemplo de um arquivo de formatação completo que define grupos, consulte Wide View (GroupBy).

Usando cadeias de caracteres de formato

As cadeias de caracteres de formatação podem ser adicionadas a uma visualização ampla para definir melhor como os dados são exibidos. O exemplo a seguir mostra como definir uma cadeia de caracteres de formatação para o valor da propriedade StartTime.

<WideItem>
  <PropertyName>StartTime</PropertyName>
  <FormatString>{0:MMM} {0:DD} {0:HH}:{0:MM}</FormatString>
</WideItem>

Os seguintes elementos XML podem ser usados para especificar um padrão de formato:

  • O elemento WideItem especifica os dados exibidos pelo modo de exibição.
  • O elemento PropertyName especifica a propriedade cujo valor é exibido pelo modo de exibição. Você deve especificar uma propriedade ou um script, mas não pode especificar ambos.
  • O elemento FormatString especifica um padrão de formato que define como a propriedade ou o valor do script é exibido no modo de exibição
  • O elemento ScriptBlock (não mostrado) especifica o script cujo valor é exibido pelo modo de exibição. Você deve especificar um script ou uma propriedade, mas não pode especificar ambos.

No exemplo a seguir, o método ToString é chamado para formatar o valor do script. Os scripts podem chamar qualquer método de um objeto. Portanto, se um objeto tiver um método, como ToString, que tenha parâmetros de formatação, o script poderá chamar esse método para formatar o valor de saída do script.

<WideItem>
  <ScriptBlock>
    [string]::Format("{0,-10} {1,-8}", $_.LastWriteTime.ToString("d"), $_.LastWriteTime.ToString("t"))
  </ScriptBlock>
</WideItem>

O seguinte elemento XML pode ser usado para chamar o método ToString:

  • O elemento WideItem especifica os dados exibidos pelo modo de exibição.
  • O elemento ScriptBlock (não mostrado) especifica o script cujo valor é exibido pelo modo de exibição. Você deve especificar um script ou uma propriedade, mas não pode especificar ambos.

Ver também