Compartir a través de


Creación de una vista de lista

Una vista de lista muestra los datos en una sola columna (en orden secuencial). Los datos mostrados en la lista pueden ser el valor de una propiedad .NET o el valor de un script.

Visualización de una vista de lista

En la salida siguiente se muestra cómo Windows PowerShell muestra las propiedades de System.ServiceProcess.ServiceController objetos devueltos por el cmdlet Get-Service. En este ejemplo, se devolvieron tres objetos, con cada objeto separado del objeto anterior por una línea en blanco.

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
...

Definición de la vista de lista

El siguiente XML muestra el esquema de vista de lista para mostrar varias propiedades del objeto System.ServiceProcess.ServiceController. Debe especificar cada propiedad que desee que se muestre en la vista 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>

Los siguientes elementos XML se usan para definir una vista de lista:

  • El elemento View es el elemento primario de la vista de lista. (Este es el mismo elemento primario para las vistas de tabla, ancho y control personalizado).

  • El elemento Name especifica el nombre de la vista. Este elemento es necesario para todas las vistas.

  • El elemento ViewSelectedBy define los objetos que usan la vista. Este elemento es necesario.

  • El elemento GroupBy define cuándo se muestra un nuevo grupo de objetos. Se inicia un nuevo grupo cada vez que cambia el valor de una propiedad o script específico. Este elemento es opcional.

  • El elemento Controls define los controles personalizados definidos por la vista de lista. Los controles proporcionan una manera de especificar aún más cómo se muestran los datos. Este elemento es opcional. Una vista puede definir sus propios controles personalizados o puede usar controles comunes que cualquier vista del archivo de formato puede usar. Para obtener más información sobre los controles personalizados, vea Crear controles personalizados.

  • El elemento ListControl define lo que se muestra en la vista y cómo tiene formato. De forma similar a todas las demás vistas, una vista de lista puede mostrar los valores de las propiedades o valores de objeto generados por script.

Para obtener un ejemplo de un archivo de formato completo que define una vista de lista sencilla, vea Vista de lista (Básico).

Proporcionar definiciones para la vista de lista

Las vistas de lista pueden proporcionar una o varias definiciones mediante los elementos secundarios del elemento ListControl. Normalmente, una vista solo tendrá una definición. En el ejemplo siguiente, la vista proporciona una única definición que muestra varias propiedades del objeto System.Diagnostics.Process. Una vista de lista puede mostrar el valor de una propiedad o el valor de un script (no se muestra en el ejemplo).

<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>

Los siguientes elementos XML se pueden usar para proporcionar definiciones para una vista de lista:

  • El elemento ListControl y sus elementos secundarios definen lo que se muestra en la vista.

  • El elemento ListEntries proporciona las definiciones de la vista. En la mayoría de los casos, una vista solo tendrá una definición. Este elemento es necesario.

  • El elemento ListEntry proporciona una definición de la vista. Se requiere al menos un listEntry; sin embargo, no hay ningún límite máximo para el número de elementos que puede agregar. En la mayoría de los casos, una vista solo tendrá una definición.

  • El elemento EntrySelectedBy especifica los objetos que se muestran mediante una definición específica. Este elemento es opcional y solo es necesario cuando se definen varios elementos ListEntry que muestran objetos diferentes.

  • El elemento ListItems especifica las propiedades y scripts cuyos valores se muestran en las filas de la vista de lista.

  • El elemento ListItem especifica una propiedad o un script cuyo valor se muestra en una fila de la vista de lista. Una vista de lista debe especificar al menos una propiedad o script. No hay ningún límite máximo para el número de filas que se pueden especificar.

  • El elemento PropertyName especifica la propiedad cuyo valor se muestra en la fila. Debe especificar una propiedad o un script, pero no puede especificar ambas.

  • El elemento ScriptBlock especifica el script cuyo valor se muestra en la fila. Debe especificar un script o una propiedad, pero no puede especificar ambos.

  • El elemento Label especifica la etiqueta que se muestra a la izquierda de la propiedad o el valor del script de la fila. Este elemento es opcional. Si no se especifica una etiqueta, se muestra el nombre de la propiedad o el script. Para obtener un ejemplo completo, vea vista de lista (etiquetas).

  • El elemento ItemSelectionCondition especifica una condición que debe existir para que se muestre la fila. Para obtener más información sobre cómo agregar condiciones a la vista de lista, vea Definición de condiciones para mostrar datos. Este elemento es opcional.

  • El elemento FormatString especifica un patrón que se usa para mostrar el valor de la propiedad o script. Este elemento es opcional.

Para obtener un ejemplo de un archivo de formato completo que define una vista de lista sencilla, vea Vista de lista (Básico).

Definir los objetos que usan la vista de lista

Hay dos maneras de definir qué objetos .NET usan la vista de lista. Puede usar el elemento ViewSelectedBy para definir los objetos que pueden mostrar todas las definiciones de la vista, o bien puede usar el elemento EntrySelectedBy para definir qué objetos se muestran mediante una definición específica de la vista. En la mayoría de los casos, una vista solo tiene una definición, por lo que los objetos normalmente se definen mediante el elemento ViewSelectedBy.

En el ejemplo siguiente se muestra cómo definir los objetos que muestra la vista de lista mediante los elementos viewSelectedBy y TypeName. No hay ningún límite en el número de TypeName elementos que se pueden especificar y su orden no es significativo.

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

Los siguientes elementos XML se pueden usar para especificar los objetos que usa la vista de lista:

  • El elemento ViewSelectedBy define los objetos que muestra la vista de lista.

  • El elemento TypeName especifica el objeto .NET que muestra la vista. Se requiere el nombre de tipo completo de .NET. Debe especificar al menos un tipo o conjunto de selección para la vista, pero no hay ningún número máximo de elementos que se pueden especificar.

Para obtener un ejemplo de un archivo de formato completo, vea Vista de lista (Básico).

En el ejemplo siguiente se usan los elementos ViewSelectedBy y SelectionSetName. Use conjuntos de selección en los que tiene un conjunto relacionado de objetos que se muestran mediante varias vistas, como cuando se define una vista de lista y una vista de tabla para los mismos objetos. Para obtener más información sobre cómo crear un conjunto de selección, vea Definición de conjuntos de selección.

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

Los siguientes elementos XML se pueden usar para especificar los objetos que usa la vista de lista:

  • El elemento ViewSelectedBy define los objetos que muestra la vista de lista.

  • El elemento SelectionSetName especifica un conjunto de objetos que la vista puede mostrar. Debe especificar al menos un conjunto de selección o un tipo para la vista, pero no hay ningún número máximo de elementos que se pueden especificar.

En el ejemplo siguiente se muestra cómo definir los objetos mostrados por una definición específica de la vista de lista mediante el elemento EntrySelectedBy. Con este elemento, puede especificar el nombre de tipo de .NET del objeto, un conjunto de selección de objetos o una condición de selección que especifica cuándo se usa la definición. Para obtener más información sobre cómo crear unas condiciones de selección, vea Definición de condiciones para mostrar datos.

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

Los siguientes elementos XML se pueden usar para especificar los objetos utilizados por una definición específica de la vista de lista:

  • El elemento EntrySelectedBy define qué objetos se muestran mediante la definición.

  • El elemento TypeName especifica el objeto .NET que muestra la definición. Al usar este elemento, se requiere el nombre de tipo completo de .NET. Debe especificar al menos un tipo, conjunto de selección o condición de selección para la definición, pero no hay ningún número máximo de elementos que se pueden especificar.

  • El elemento SelectionSetName (no se muestra) especifica un conjunto de objetos que esta definición puede mostrar. Debe especificar al menos un tipo, conjunto de selección o condición de selección para la definición, pero no hay ningún número máximo de elementos que se pueden especificar.

  • El elemento SelectionCondition (no se muestra) especifica una condición que debe existir para que se use esta definición. Debe especificar al menos un tipo, conjunto de selección o condición de selección para la definición, pero no hay ningún número máximo de elementos que se pueden especificar. Para obtener más información sobre cómo definir condiciones de selección, vea Definición de condiciones para mostrar datos.

Mostrar grupos de objetos en una vista de lista

Puede separar los objetos que muestra la vista de lista en grupos. Esto no significa que defina un grupo, solo que Windows PowerShell inicie un nuevo grupo cada vez que cambie el valor de una propiedad o script específico. En el ejemplo siguiente, se inicia un nuevo grupo cada vez que cambia el valor de la propiedad System.ServiceProcess.ServiceController.ServiceType.

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

Los siguientes elementos XML se usan para definir cuándo se inicia un grupo:

  • El elemento GroupBy define la propiedad o script que inicia el nuevo grupo y define cómo se muestra el grupo.

  • El elemento PropertyName especifica la propiedad que inicia un nuevo grupo cada vez que cambia su valor. Debe especificar una propiedad o un script para iniciar el grupo, pero no puede especificar ambos.

  • El elemento ScriptBlock especifica el script que inicia un nuevo grupo cada vez que cambia su valor. Debe especificar un script o una propiedad para iniciar el grupo, pero no puede especificar ambos.

  • El elemento Label define una etiqueta que se muestra al principio de cada grupo. Además del texto especificado por este elemento, Windows PowerShell muestra el valor que desencadenó el nuevo grupo y agrega una línea en blanco antes y después de la etiqueta. Este elemento es opcional.

  • El elemento CustomControl define un control que se usa para mostrar los datos. Este elemento es opcional.

  • El elemento CustomControlName especifica un control común o de vista que se usa para mostrar los datos. Este elemento es opcional.

Para obtener un ejemplo de un archivo de formato completo que define grupos, vea Vista de lista (GroupBy).

Usar cadenas de formato

Las cadenas de formato se pueden agregar a una vista para definir aún más cómo se muestran los datos. En el ejemplo siguiente se muestra cómo definir una cadena de formato para el valor de la propiedad StartTime.

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

Los siguientes elementos XML se pueden usar para especificar un patrón de formato:

  • El elemento ListItem especifica los datos que muestra la vista.

  • El elemento PropertyName especifica la propiedad cuyo valor se muestra en la vista. Debe especificar una propiedad o un script, pero no puede especificar ambas.

  • El elemento FormatString especifica un patrón de formato que define cómo se muestra la propiedad o el valor del script en la vista.

  • El elemento ScriptBlock (no se muestra) especifica el script cuyo valor se muestra en la vista. Debe especificar un script o una propiedad, pero no puede especificar ambos.

En el ejemplo siguiente, se llama al método ToString para dar formato al valor del script. Los scripts pueden llamar a cualquier método de un objeto . Por lo tanto, si un objeto tiene un método, como ToString, que tiene parámetros de formato, el script puede llamar a ese método para dar formato al valor de salida del script.

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

El siguiente elemento XML se puede usar para llamar al método ToString:

  • El elemento ListItem especifica los datos que muestra la vista.

  • El elemento ScriptBlock (no se muestra) especifica el script cuyo valor se muestra en la vista. Debe especificar un script o una propiedad, pero no puede especificar ambos.

Véase también

escribir un cmdlet de Windows PowerShell