当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 创建列表视图

作者:精品下载站 日期:2024-12-14 02:44:26 浏览:11 分类:玩电脑

创建列表视图


列表视图在单列中显示数据(按顺序)。列表中显示的数据可以是.NET 属性的值或脚本的值。

列表视图显示

以下输出显示 Windows PowerShell 如何显示 Get-Service cmdlet 返回的 System.Serviceprocess.Servicecontroller?Displayproperty=Fullname 对象的属性。在此示例中,返回了三个对象,每个对象与前一个对象之间用空行分隔。

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

定义列表视图

以下 XML 显示了用于显示 System.Serviceprocess.Servicecontroller?Displayproperty=Fullname 对象的多个属性的列表视图架构。您必须指定要在列表视图中显示的每个属性。

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

以下 XML 元素用于定义列表视图:

  • View 元素是列表视图的父元素。 (这与表视图、宽视图和自定义控件视图的父元素相同。)

  • Name 元素指定视图的名称。所有视图都需要此元素。

  • ViewSelectedBy 元素定义使用视图的对象。该元素是必需的。

  • GroupBy 元素定义何时显示一组新的对象。每当特定属性或脚本的值发生更改时,就会启动一个新组。该元素是可选的。

  • Controls 元素定义由列表视图定义的自定义控件。控件为您提供了一种进一步指定数据显示方式的方法。该元素是可选的。视图可以定义自己的自定义控件,也可以使用格式化文件中任何视图都可以使用的通用控件。有关自定义控件的更多信息,请参阅创建自定义控件。

  • ListControl 元素定义视图中显示的内容及其格式。与所有其他视图类似,列表视图可以显示对象属性的值或脚本生成的值。

有关定义简单列表视图的完整格式化文件的示例,请参阅列表视图(基本)。

为您的列表视图提供定义

列表视图可以通过使用 ListControl 元素的子元素来提供一个或多个定义。通常,一个视图只有一个定义。在以下示例中,视图提供了一个显示 System.Diagnostics.Process?Displayproperty=Fullname 对象的多个属性的定义。列表视图可以显示属性的值或脚本的值(示例中未显示)。

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

以下 XML 元素可用于提供列表视图的定义:

  • ListControl 元素及其子元素定义视图中显示的内容。

  • ListEntries 元素提供视图的定义。在大多数情况下,一个视图只有一个定义。该元素是必需的。

  • ListEntry 元素提供视图的定义。至少需要一个ListEntry;但是,可以添加的元素数量没有最大限制。在大多数情况下,一个视图只有一个定义。

  • EntrySelectedBy 元素指定按特定定义显示的对象。此元素是可选的,仅当您定义显示不同对象的多个 ListEntry 元素时才需要。

  • ListItems 元素指定其值显示在列表视图的行中的属性和脚本。

  • ListItem 元素指定一个属性或脚本,其值显示在列表视图的一行中。列表视图必须至少指定一个属性或脚本。可以指定的行数没有最大限制。

  • PropertyName 元素指定其值显示在行中的属性。您必须指定属性或脚本,但不能同时指定两者。

  • ScriptBlock 元素指定其值显示在行中的脚本。您必须指定脚本或属性,但不能同时指定两者。

  • Label 元素指定显示在行中属性或脚本值左侧的标签。该元素是可选的。如果未指定标签,则显示属性或脚本的名称。有关完整示例,请参阅列表视图(标签)。

  • ItemSelectionCondition 元素指定要显示的行必须存在的条件。有关向列表视图添加条件的详细信息,请参阅定义显示数据的条件。该元素是可选的。

  • FormatString 元素指定用于显示属性或脚本值的模式。该元素是可选的。

有关定义简单列表视图的完整格式化文件的示例,请参阅列表视图(基本)。

定义使用列表视图的对象

有两种方法可以定义哪些 .NET 对象使用列表视图。您可以使用 ViewSelectedBy 元素来定义视图的所有定义可以显示的对象,也可以使用 EntrySelectedBy 元素来定义视图的特定定义显示哪些对象。在大多数情况下,视图只有一个定义,因此对象通常由 ViewSelectedBy 元素定义。

以下示例演示如何使用 ViewSelectedBy 和 TypeName 元素定义列表视图显示的对象。您可以指定的 TypeName 元素的数量没有限制,并且它们的顺序并不重要。

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

以下 XML 元素可用于指定列表视图使用的对象:

  • ViewSelectedBy 元素定义列表视图显示哪些对象。

  • TypeName 元素指定视图显示的.NET 对象。需要完全限定的 .NET 类型名称。您必须为视图指定至少一种类型或选择集,但可以指定的元素数量没有最大限制。

有关完整格式化文件的示例,请参阅列表视图(基本)。

以下示例使用 ViewSelectedBy 和 SelectionSetName 元素。如果您有一组使用多个视图显示的相关对象,请使用选择集,例如为相同对象定义列表视图和表视图时。有关如何创建选择集的详细信息,请参阅定义选择集。

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

以下 XML 元素可用于指定列表视图使用的对象:

  • ViewSelectedBy 元素定义列表视图显示哪些对象。

  • SelectionSetName 元素指定可由视图显示的一组对象。您必须为视图指定至少一种选择集或类型,但可以指定的元素数量没有最大限制。

以下示例演示如何使用 EntrySelectedBy 元素来定义列表视图的特定定义所显示的对象。使用此元素,您可以指定对象的 .NET 类型名称、对象选择集或指定何时使用定义的选择条件。有关如何创建选择条件的详细信息,请参阅定义显示数据的条件。

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

以下 XML 元素可用于指定列表视图的特定定义所使用的对象:

  • EntrySelectedBy 元素定义根据定义显示哪些对象。

  • TypeName 元素指定定义显示的 .NET 对象。使用此元素时,需要完全限定的 .NET 类型名称。您必须为定义至少指定一种类型、选择集或选择条件,但可以指定的元素数量没有上限。

  • SelectionSetName 元素(未显示)指定可以通过此定义显示的一组对象。您必须为定义至少指定一种类型、选择集或选择条件,但可以指定的元素数量没有上限。

  • SelectionCondition 元素(未显示)指定要使用此定义必须存在的条件。您必须为定义至少指定一种类型、选择集或选择条件,但可以指定的元素数量没有上限。有关定义选择条件的详细信息,请参阅定义显示数据的条件。

在列表视图中显示对象组

您可以将列表视图显示的对象分成组。这并不意味着您定义一个组,只是每当特定属性或脚本的值发生更改时,Windows PowerShell 就会启动一个新组。在以下示例中,只要 System.Serviceprocess.Servicecontroller.Servicetype 属性的值发生更改,就会启动一个新组。

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

以下 XML 元素用于定义组何时启动:

  • GroupBy 元素定义启动新组的属性或脚本,并定义该组的显示方式。

  • PropertyName 元素指定每当其值更改时启动新组的属性。您必须指定属性或脚本来启动组,但不能同时指定两者。

  • ScriptBlock 元素指定每当其值更改时启动新组的脚本。您必须指定脚本或属性来启动组,但不能同时指定两者。

  • Label 元素定义显示在每个组开头的标签。除了此元素指定的文本之外,Windows PowerShell 还会显示触发新组的值,并在标签前后添加一个空行。该元素是可选的。

  • CustomControl 元素定义用于显示数据的控件。该元素是可选的。

  • CustomControlName 元素指定用于显示数据的公共控件或视图控件。该元素是可选的。

有关定义组的完整格式设置文件的示例,请参阅列表视图 (GroupBy)。

使用格式字符串

可以将格式化字符串添加到视图中以进一步定义数据的显示方式。以下示例演示如何为 StartTime 属性的值定义格式字符串。

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

以下 XML 元素可用于指定格式模式:

  • ListItem 元素指定视图显示的数据。

  • PropertyName 元素指定视图显示其值的属性。您必须指定属性或脚本,但不能同时指定两者。

  • FormatString 元素指定格式模式,该格式模式定义属性或脚本值在视图中的显示方式。

  • ScriptBlock 元素(未显示)指定其值由视图显示的脚本。您必须指定脚本或属性,但不能同时指定两者。

在以下示例中,调用 ToString 方法来格式化脚本的值。脚本可以调用对象的任何方法。因此,如果对象具有带有格式化参数的方法(例如 ToString),则脚本可以调用该方法来格式化脚本的输出值。

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

以下 XML 元素可用于调用 ToString 方法:

  • ListItem 元素指定视图显示的数据。

  • ScriptBlock 元素(未显示)指定其值由视图显示的脚本。您必须指定脚本或属性,但不能同时指定两者。

参见

编写 Windows PowerShell Cmdlet

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯