Partilhar via


Creating a List View (Criar uma Vista de Lista)

Uma visualização de lista apresenta dados numa única coluna (por ordem sequencial). Os dados apresentados na lista podem ser o valor de uma propriedade .NET ou o valor de um script.

Um display de visualização de lista

A seguinte saída mostra como Windows PowerShell exibe as propriedades do System.Serviceprocess.Servicecontroller? Displayproperty=Fullname objects que são devolvidos pelo cmdlet Get-Service. Neste exemplo, foram devolvidos três objetos, 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
...

Definição da vista da lista

O XML que se segue mostra o esquema de visualização da lista para exibir várias propriedades do System.Serviceprocess.Servicecontroller? Displayproperty=Fullname object. Tem de especificar cada imóvel que pretende ser exibido na vista da 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>

São utilizados os seguintes elementos XML para definir uma vista de lista:

  • O elemento 'Ver' é o elemento-mãe da vista da lista. (Este é o mesmo elemento-mãe para a mesa, vistas amplas e personalizadas de controlo.)

  • O elemento Nome especifica o nome da vista. Este elemento é necessário para todas as vistas.

  • O elemento ViewSelectedBy define os objetos que utilizam a vista. Este elemento é necessário.

  • O elemento GroupBy define quando é apresentado um novo grupo de objetos. Um novo grupo é iniciado sempre que o valor de uma propriedade específica ou script muda. Este elemento é opcional.

  • O elemento Controlo define os controlos personalizados que são definidos pela vista da lista. Os controlos dão-lhe uma forma de especificar ainda mais como os dados são apresentados. Este elemento é opcional. Uma vista pode definir os seus próprios controlos personalizados, ou pode usar controlos comuns que podem ser usados por qualquer vista no ficheiro formatação. Para obter mais informações sobre controlos personalizados, consulte criar controlos personalizados.

  • O elemento ListControl define o que é apresentado na vista e como é formatado. Semelhante a todas as outras vistas, uma vista de lista pode exibir os valores de propriedades ou valores do objeto gerados pelo script.

Para um exemplo de um ficheiro de formatação completo que define uma visão simples da lista, consulte a Vista de Lista (Básico).

Fornecendo definições para a sua visualização de lista

As vistas da lista podem fornecer uma ou mais definições utilizando os elementos infantis do elemento ListControl. Tipicamente, uma vista terá apenas uma definição. No exemplo seguinte, a vista fornece uma única definição que exibe várias propriedades do Sistema.Diagnostics.Process? Displayproperty=Fullname object. Uma vista de lista pode mostrar o valor de um imóvel 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 utilizados para fornecer definições para uma vista de lista:

  • O elemento ListControl e os seus elementos infantis definem o que é apresentado na vista.

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

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

  • O elemento EntrySelectedBy especifica os objetos que são apresentados por uma definição específica. Este elemento é opcional e só é necessário quando define vários elementos ListEntry que exibem diferentes objetos.

  • O elemento ListItems especifica as propriedades e scripts cujos valores são apresentados nas linhas da vista da lista.

  • O elemento ListItem especifica uma propriedade ou script cujo valor é exibido numa sequência da vista da lista. Uma vista de lista deve especificar pelo menos uma propriedade ou script. Não existe um limite máximo para o número de linhas que podem ser especificadas.

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

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

  • O elemento Etiqueta especifica a etiqueta que é apresentada à esquerda da propriedade ou valor do script na linha. Este elemento é opcional. Se não for especificada uma etiqueta, o nome da propriedade ou do script é apresentado. Para um exemplo completo, consulte a visualização da lista (etiquetas).

  • O elemento ItensSelectionCondition especifica uma condição que deve existir para a linha a ser exibida. Para obter mais informações sobre a adição de condições à vista da lista, consulte as condições de definição dos dados. Este elemento é opcional.

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

Para um exemplo de um ficheiro de formatação completo que define uma visão simples da lista, consulte a Vista de Lista (Básico).

Definição dos objetos que usam a vista da lista

Existem duas formas de definir quais os objetos .NET que usam a vista da lista. Pode utilizar o elemento ViewSelectedBy para definir os objetos que podem ser exibidos por todas as definições da vista, ou pode utilizar o elemento EntrySelectedBy para definir quais os objetos que são apresentados por uma definição específica da vista. Na maioria dos casos, uma vista tem apenas uma definição, por isso os objetos são tipicamente definidos pelo elemento ViewSelectedBy.

O exemplo a seguir mostra como definir os objetos que são apresentados pela vista da lista utilizando os elementos ViewSelectedBy e TypeName. Não há limite para o número de elementos TypeName que pode especificar, e a sua encomenda 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 utilizados para especificar os objetos que são utilizados pela vista da lista:

  • O elemento ViewSelectedBy define quais os objetos que são apresentados pela vista da lista.

  • O elemento TypeName especifica o objeto .NET que é visualizado pela vista. É necessário o nome do tipo .NET totalmente qualificado. Deve especificar pelo menos um tipo ou conjunto de seleção para a vista, mas não há um número máximo de elementos que possam ser especificados.

Para um exemplo de um ficheiro de formatação completo, consulte a Visualização da Lista (Básico).

O exemplo a seguir utiliza os elementos ViewSelectedBy e SelectionSetName. Utilize conjuntos de seleção onde tenha um conjunto de objetos relacionados que são exibidos usando múltiplas vistas, tais como quando define uma vista de lista e uma vista de mesa para os mesmos objetos. Para obter mais informações sobre como criar um conjunto de seleção, consulte Definição de 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 utilizados para especificar os objetos que são utilizados pela vista da lista:

  • O elemento ViewSelectedBy define quais os objetos que são apresentados pela vista da lista.

  • O elemento SelectionSetName especifica um conjunto de objetos que podem ser exibidos pela vista. Deve especificar pelo menos um conjunto de seleção ou um tipo para a vista, mas não há um número máximo de elementos que possam ser especificados.

O exemplo a seguir mostra como definir os objetos apresentados por uma definição específica da vista da lista utilizando o elemento EntrySelectedBy. Utilizando este elemento, pode especificar o nome do tipo .NET do objeto, um conjunto de objetos de seleção ou uma condição de seleção que especifica quando a definição é utilizada. Para obter mais informações sobre como criar condições de seleção, consulte condições de definição para visualização de dados.

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

Os seguintes elementos XML podem ser utilizados para especificar os objetos que são utilizados por uma definição específica da vista da lista:

  • O elemento EntrySelectedBy define quais os objetos que são apresentados pela definição.

  • O elemento TypeName especifica o objeto .NET que é apresentado pela definição. Ao utilizar este elemento, é necessário o nome do tipo .NET totalmente qualificado. 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 esta definição. 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 SelecçãoCondição (não mostrado) especifica uma condição que deve existir para que esta definição seja utilizada. 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 a definição das condições de seleção, consulte as condições de definição dos dados de visualização.

Exibir grupos de objetos numa vista de lista

Pode separar os objetos que são apresentados pela visualização da lista em grupos. Isto não significa que você define um grupo, apenas que Windows PowerShell inicia um novo grupo sempre que o valor de uma propriedade específica ou script muda. No exemplo seguinte, é iniciado um novo grupo sempre que o valor do sistema.Serviceprocess.Servicecontroller.Servicecontroller.Servicecontroller.Servicecontroller.Servicetype.Servicetype.Servicetype muda.

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

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

  • O elemento GroupBy define a propriedade ou script que inicia o novo grupo e define como o grupo é exibido.

  • O elemento Nome de Propriedade especifica a propriedade que inicia um novo grupo sempre que o seu valor muda. Você deve especificar uma propriedade ou script para iniciar o grupo, mas você não pode especificar ambos.

  • O elemento ScriptBlock especifica o script que inicia um novo grupo sempre que o seu valor muda. Você deve especificar um script ou propriedade para iniciar o grupo, mas você não pode especificar ambos.

  • O elemento Etiqueta define uma etiqueta que é exibida no início de cada grupo. Além do texto especificado por este elemento, Windows PowerShell exibe o valor que desencadeou o novo grupo e adiciona uma linha em branco antes e depois da etiqueta. Este elemento é opcional.

  • O elemento CustomControl define um controlo que é utilizado para exibir os dados. Este elemento é opcional.

  • O elemento CustomControlName especifica um controlo comum ou de visualização que é utilizado para exibir os dados. Este elemento é opcional.

Para um exemplo de um ficheiro de formatação completo que define grupos, consulte List View (GroupBy).

Usando cordas de formato

As cordas de formatação podem ser adicionadas a uma visão para definir ainda mais como os dados são apresentados. O exemplo a seguir mostra como definir uma cadeia de formatação para o valor do StartTime imóvel.

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

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

  • O elemento ListItem especifica os dados que são apresentados pela vista.

  • O elemento Nome de Propriedade especifica a propriedade cujo valor é exibido pela vista. Você deve especificar uma propriedade ou um script, mas você não pode especificar ambos.

  • O elemento FormatString especifica um padrão de formato que define como o valor da propriedade ou do script é apresentado na vista.

  • O elemento ScriptBlock (não mostrado) especifica o script cujo valor é apresentado pela vista. Você deve especificar um script ou uma propriedade, mas você não pode especificar ambos.

No exemplo seguinte, o ToString método é chamado para formatar o valor do script. Os scripts podem chamar qualquer método de um objeto. Portanto, se um objeto tem um método, ToString como, que tem parâmetros de formatação, o script pode 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 ToString método:

  • O elemento ListItem especifica os dados que são apresentados pela vista.

  • O elemento ScriptBlock (não mostrado) especifica o script cujo valor é apresentado pela vista. Você deve especificar um script ou uma propriedade, mas você não pode especificar ambos.

Consulte também

Writing a Windows PowerShell Cmdlet (Escrever um Cmdlet do Windows PowerShell)