Ler em inglês

Compartilhar via


Criar uma exibição de lista

Uma exibição de lista exibe dados em uma única coluna (em ordem sequencial). Os dados exibidos na lista podem ser o valor de uma propriedade .NET ou o valor de um script.

Uma exibição de exibição de lista

A saída a seguir mostra como o Windows PowerShell exibe as propriedades de objetos System.ServiceProcess.ServiceController retornados pelo cmdlet Get-Service. Neste exemplo, três objetos foram retornados, com cada objeto separado do objeto anterior por uma linha em branco.

Get-Service | Format-List
Name                : AEADIFilters
DisplayName         : Andrea ADI Filters Service
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : True
ServiceType         : Win32OwnProcess

Name                : AeLookupSvc
DisplayName         : Application Experience
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : True
ServiceType         : Win32ShareProcess

Name                : AgereModemAudio
DisplayName         : Agere Modem Call Progress Audio
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : True
ServiceType         : Win32OwnProcess
...

Definindo o Modo de Exibição de Lista

O XML a seguir mostra o esquema de exibição de lista para exibir várias propriedades do objeto System.ServiceProcess.ServiceController. Você deve especificar cada propriedade desejada exibida no modo de exibição de lista.

<View>
  <Name>System.ServiceProcess.ServiceController</Name>
  <ViewSelectedBy>
    <TypeName>System.ServiceProcess.ServiceController</TypeName>
  </ViewSelectedBy>
  <ListControl>
    <ListEntries>
      <ListEntry>
        <ListItems>
          <ListItem>
            <PropertyName>Name</PropertyName>
          </ListItem>
          <ListItem>
            <PropertyName>DisplayName</PropertyName>
          </ListItem>
          <ListItem>
            <PropertyName>Status</PropertyName>
          </ListItem>
          <ListItem>
            <PropertyName>ServiceType</PropertyName>
          </ListItem>
        </ListItems>
      </ListEntry>
    </ListEntries>
  </ListControl>
</View>

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

  • O elemento View é o elemento pai da exibição de lista. (Este é o mesmo elemento pai para as exibições de controle largo, largo e personalizado.)

  • O elemento Name especifica o nome da exibição. Esse elemento é necessário para todos os modos de exibição.

  • O elemento ViewSelectedBy define os objetos que usam a exibição. Esse elemento é necessá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. Esse elemento é opcional.

  • O elemento controles de define os controles personalizados definidos pelo modo de exibição de lista. Os controles fornecem uma maneira de especificar ainda mais como os dados são exibidos. Esse elemento é opcional. Uma exibição pode definir seus próprios controles personalizados ou pode usar controles comuns que podem ser usados por qualquer exibição no arquivo de formatação. Para obter mais informações sobre controles personalizados, consulte Criando controles personalizados.

  • O elemento ListControl define o que é exibido no modo de exibição e como ele é formatado. Semelhante a todos os outros modos de exibição, um modo de exibição de lista pode exibir os valores de propriedades de objeto ou valores gerados pelo script.

Para obter um exemplo de um arquivo de formatação completo que define uma exibição de lista simples, consulte Exibição de Lista (Basic).

Fornecendo definições para o modo de exibição de lista

As exibições de lista podem fornecer uma ou mais definições usando os elementos filho do elemento ListControl. Normalmente, uma exibição terá apenas uma definição. No exemplo a seguir, a exibição fornece uma única definição que exibe várias propriedades do objeto System.Diagnostics.Process. Uma exibição de lista pode exibir o valor de uma propriedade ou o valor de um script (não mostrado no exemplo).

<ListControl>
    <ListEntries>
      <ListEntry>
        <ListItems>
          <ListItem>
            <PropertyName>Name</PropertyName>
          </ListItem>
          <ListItem>
            <PropertyName>DisplayName</PropertyName>
          </ListItem>
          <ListItem>
            <PropertyName>Status</PropertyName>
          </ListItem>
          <ListItem>
            <PropertyName>ServiceType</PropertyName>
          </ListItem>
        </ListItems>
      </ListEntry>
    </ListEntries>
  </ListControl>

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

  • O elemento ListControl e seus elementos filho definem o que é exibido na exibição.

  • O elemento ListEntries fornece as definições da exibição. Na maioria dos casos, uma exibição terá apenas uma definição. Esse elemento é necessário.

  • O elemento ListEntry fornece uma definição da exibição. Pelo menos um ListEntry é necessário; no entanto, não há limite máximo para o número de elementos que você pode adicionar. Na maioria dos casos, uma exibição terá apenas uma definição.

  • O elemento EntrySelectedBy especifica os objetos exibidos por uma definição específica. Esse elemento é opcional e é necessário somente quando você define vários elementos ListEntry que exibem objetos diferentes.

  • O elemento ListItems especifica as propriedades e scripts cujos valores são exibidos nas linhas do modo de exibição de lista.

  • O elemento ListItem especifica uma propriedade ou script cujo valor é exibido em uma linha do modo de exibição de lista. Uma exibição de lista deve especificar pelo menos uma propriedade ou script. Não há limite máximo para o número de linhas que podem ser especificadas.

  • O elemento PropertyName especifica a propriedade cujo valor é exibido na linha. Você deve especificar uma propriedade ou um script, mas não pode especificar ambos.

  • O elemento ScriptBlock especifica o script cujo valor é exibido na linha. Você deve especificar um script ou uma propriedade, mas não pode especificar ambos.

  • O elemento Label especifica o rótulo exibido à esquerda da propriedade ou do valor do script na linha. Esse elemento é opcional. Se um rótulo não for especificado, o nome da propriedade ou do script será exibido. Para obter um exemplo completo, consulte Exibição de Lista (Rótulos).

  • O elemento ItemSelectionCondition especifica uma condição que deve existir para que a linha seja exibida. Para obter mais informações sobre como adicionar condições ao modo de exibição de lista, consulte Definindo condições para exibirde dados. Esse elemento é opcional.

  • O elemento FormatString especifica um padrão usado para exibir o valor da propriedade ou do script. Esse elemento é opcional.

Para obter um exemplo de um arquivo de formatação completo que define uma exibição de lista simples, consulte Exibição de Lista (Basic).

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

Há duas maneiras de definir quais objetos .NET usam a exibição de lista. 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 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, uma exibição tem apenas uma definição, portanto, os objetos normalmente são definidos pelo elemento ViewSelectedBy.

O exemplo a seguir mostra como definir os objetos exibidos pela exibição de lista 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>
  <ListControl>...</ListControl>
</View>

Os seguintes elementos XML podem ser usados para especificar os objetos usados pela exibição de lista:

  • O elemento ViewSelectedBy define quais objetos são exibidos pelo modo de exibição de lista.

  • O elemento TypeName especifica o objeto .NET exibido pela exibição. O nome de tipo .NET totalmente qualificado é necessário. Você deve especificar pelo menos um tipo ou conjunto de seleção para o modo de exibição, mas não há um número máximo de elementos que possa ser especificado.

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

O exemplo a seguir usa os elementos ViewSelectedBy e SelectionSetName. Use conjuntos de seleção em que você tenha um conjunto relacionado de objetos que são exibidos usando várias exibições, como quando você define um modo de exibição de lista 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>
  <ListControl>...</ListControl>
</View>

Os seguintes elementos XML podem ser usados para especificar os objetos usados pela exibição de lista:

  • O elemento ViewSelectedBy define quais objetos são exibidos pelo modo de exibição de lista.

  • 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 possa ser especificado.

O exemplo a seguir mostra como definir os objetos exibidos por uma definição específica da exibição de lista 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 exibirde dados.

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

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

  • O elemento EntrySelectedBy define quais objetos são exibidos pela definição.

  • O elemento TypeName especifica o objeto .NET exibido pela definição. Ao usar esse elemento, o nome de 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 possam 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 possam 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 possam ser especificados. Para obter mais informações sobre como definir condições de seleção, consulte Definindo condições para exibirde dados.

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

Você pode separar os objetos exibidos pela exibição de lista em grupos. Isso não significa que você defina um grupo, somente que o Windows PowerShell inicie um novo grupo sempre que o valor de uma propriedade ou script específico for 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 exibido no início de cada grupo. Além do texto especificado por esse elemento, o Windows PowerShell exibe o valor que disparou o novo grupo e adiciona uma linha em branco antes e depois do rótulo. Esse elemento é opcional.

  • O elemento CustomControl define um controle usado para exibir os dados. Esse elemento é opcional.

  • O elemento CustomControlName especifica um controle comum ou de exibição usado para exibir os dados. Esse elemento é opcional.

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

Usando cadeias de caracteres de formato

As cadeias de caracteres de formatação podem ser adicionadas a uma exibição para definir ainda mais 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.

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

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

  • O elemento ListItem especifica os dados exibidos pela 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 o valor da propriedade ou 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.

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

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

  • O elemento ListItem especifica os dados exibidos pela 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.

Consulte Também

gravando um cmdlet do Windows PowerShell