Tworzenie widoku listy

Widok listy wyświetla dane w jednej kolumnie (w kolejności sekwencyjnej). Dane wyświetlane na liście mogą być wartością właściwości .NET lub wartością skryptu.

Wyświetlanie widoku listy

Następujące dane wyjściowe pokazują, Windows PowerShell wyświetla właściwości System.Serviceprocess.Servicecontroller? Displayproperty = fullname obiektów, które są zwracane przez Get-Service polecenia cmdlet. W tym przykładzie zostały zwrócone trzy obiekty, a każdy obiekt oddzielony od poprzedniego obiektu pustym wierszem.

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

Definiowanie widoku listy

Poniższy kod XML przedstawia schemat widoku listy do wyświetlania kilku właściwości elementu System.Serviceprocess.Servicecontroller? Displayproperty = fullname obiektu. Należy określić każdą właściwość, która ma być wyświetlana w widoku listy.

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

Następujące elementy XML są używane do definiowania widoku listy:

  • View element jest elementem nadrzędnym widoku listy. (Jest to ten sam element nadrzędny dla tabeli, szerokiej i niestandardowej kontrolki widoki).

  • Name element określa nazwę widoku. Ten element jest wymagany dla wszystkich widoków.

  • ViewSelectedBy element definiuje obiekty, które używają widoku. Ten element jest wymagany.

  • GroupBy element określa, kiedy jest wyświetlana nowa grupa obiektów. Nowa grupa jest uruchomiona przy każdej zmianie wartości określonej właściwości lub skryptu. Ten element jest opcjonalny.

  • Formanty element definiuje formanty niestandardowe, które są zdefiniowane w widoku listy. Kontrolki zapewniają sposób dalszego określania sposobu wyświetlania danych. Ten element jest opcjonalny. Widok może definiować własne kontrolki niestandardowe lub używać typowych kontrolek, które mogą być używane przez dowolny widok w pliku formatowania. Aby uzyskać więcej informacji na temat kontrolek niestandardowych, zobacz Tworzenie kontrolek niestandardowych.

  • Element ListControl definiuje, co jest wyświetlane w widoku i jak jest formatowany. Podobnie jak w przypadku wszystkich innych widoków, widok listy może wyświetlać wartości właściwości obiektu lub wartości wygenerowanych przez skrypt.

Aby uzyskać przykład pełnego pliku formatowania definiującego prosty widok listy, zobacz Widok listy (podstawowy).

Udostępnianie definicji dla widoku listy

Widoki listy mogą dostarczać co najmniej jedną definicję przy użyciu elementów podrzędnych elementu ListControl. Zazwyczaj widok będzie mieć tylko jedną definicję. W poniższym przykładzie widok zawiera pojedynczą definicję, która wyświetla kilka właściwości obiektu System.Diagnostics.Process? Displayproperty = fullname obiektu. Widok listy może wyświetlać wartość właściwości lub wartość skryptu (nie pokazaną w przykładzie).

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

Następujące elementy XML mogą służyć do zapewnienia definicji dla widoku listy:

  • ListControl element i jego elementy podrzędne definiują, co jest wyświetlane w widoku.

  • Element ListEntries zawiera definicje widoku. W większości przypadków widok będzie mieć tylko jedną definicję. Ten element jest wymagany.

  • Element ListEntry zawiera definicję widoku. Wymagana jest co najmniej jedna listaEntry; Nie ma jednak żadnego maksymalnego limitu liczby elementów, które można dodać. W większości przypadków widok będzie mieć tylko jedną definicję.

  • EntrySelectedBy element określa obiekty, które są wyświetlane przez określoną definicję. Ten element jest opcjonalny i jest wymagany tylko w przypadku definiowania wielu elementów ListEntry, które wyświetlają różne obiekty.

  • Element ListItems określa właściwości i skrypty, których wartości są wyświetlane w wierszach widoku listy.

  • Element ListItem określa właściwość lub skrypt, którego wartość jest wyświetlana w wierszu widoku listy. Widok listy musi określać co najmniej jedną właściwość lub skrypt. Nie ma żadnego maksymalnego limitu liczby wierszy, które można określić.

  • PropertyName element określa właściwość, której wartość jest wyświetlana w wierszu. Należy określić właściwość lub skrypt, ale nie można określić obu tych właściwości.

  • Element ScriptBlock określa skrypt, którego wartość jest wyświetlana w wierszu. Należy określić skrypt lub właściwość, ale nie można określić obu tych właściwości.

  • Etykieta element określa etykietę, która jest wyświetlana z lewej strony właściwości lub wartość skryptu w wierszu. Ten element jest opcjonalny. Jeśli etykieta nie zostanie określona, zostanie wyświetlona nazwa właściwości lub skrypt. Aby uzyskać kompletny przykład, zobacz Widok listy (etykiety).

  • Element ItemSelectionCondition określa warunek, który musi istnieć, aby wiersz był wyświetlany. Aby uzyskać więcej informacji na temat dodawania warunków do widoku listy, zobacz Definiowanie warunków wyświetlania danych. Ten element jest opcjonalny.

  • FormatString element określa wzorzec, który służy do wyświetlania wartości właściwości lub skryptu. Ten element jest opcjonalny.

Aby uzyskać przykład pełnego pliku formatowania definiującego prosty widok listy, zobacz Widok listy (podstawowy).

Definiowanie obiektów, które używają widoku listy

Istnieją dwa sposoby definiowania, które obiekty .NET używają widoku listy. Możesz użyć elementu ViewSelectedBy, aby zdefiniować obiekty, które mogą być wyświetlane przez wszystkie definicje widoku, lub użyć elementu EntrySelectedBy, aby zdefiniować, które obiekty są wyświetlane przez określoną definicję widoku. W większości przypadków widok ma tylko jedną definicję, więc obiekty są zwykle definiowane przez element ViewSelectedBy.

W poniższym przykładzie pokazano, jak zdefiniować obiekty wyświetlane w widoku listy przy użyciu elementów ViewSelectedBy i TypeName. Nie ma żadnego ograniczenia liczby elementów TypeName, które można określić, a ich kolejność nie jest istotna.

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

Następujące elementy XML mogą służyć do określania obiektów, które są używane przez widok listy:

  • Element ViewSelectedBy definiuje, które obiekty są wyświetlane w widoku listy.

  • TypeName element określa obiekt .NET, który jest wyświetlany w widoku. Wymagana jest w pełni kwalifikowana nazwa typu .NET. Należy określić co najmniej jeden typ lub zestaw wyboru dla widoku, ale nie ma maksymalnej liczby elementów, które można określić.

Aby uzyskać przykład pełnego formatowania pliku, zobacz Widok listy (podstawowy).

W poniższym przykładzie użyto elementów ViewSelectedBy i SelectionSetName. Użyj zestawów wyboru, w których masz powiązany zestaw obiektów wyświetlanych przy użyciu wielu widoków, na przykład podczas definiowania widoku listy i widoku tabeli dla tych samych obiektów. Aby uzyskać więcej informacji na temat tworzenia zestawu wyboru, zobacz Defining Selection Sets (Definiowanie zestawów wyboru).

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

Następujące elementy XML mogą służyć do określania obiektów, które są używane przez widok listy:

  • Element ViewSelectedBy definiuje, które obiekty są wyświetlane w widoku listy.

  • SelectionSetName element określa zestaw obiektów, które mogą być wyświetlane przez widok. Należy określić co najmniej jeden zestaw wyboru lub typ widoku, ale nie ma maksymalnej liczby elementów, które można określić.

W poniższym przykładzie pokazano, jak zdefiniować obiekty wyświetlane przez określoną definicję widoku listy przy użyciu elementu EntrySelectedBy. Za pomocą tego elementu można określić nazwę typu .NET obiektu, zestaw wyboru obiektów lub warunek wyboru, który określa, kiedy definicja jest używana. Aby uzyskać więcej informacji na temat tworzenia warunków wyboru, zobacz Definiowanie warunków wyświetlania danych.

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

Następujące elementy XML mogą służyć do określania obiektów, które są używane przez określoną definicję widoku listy:

  • EntrySelectedBy element definiuje, które obiekty są wyświetlane przez definicję.

  • TypeName element określa obiekt .NET, który jest wyświetlany przez definicję. W przypadku korzystania z tego elementu wymagana jest w pełni kwalifikowana nazwa typu .NET. Należy określić co najmniej jeden typ, zestaw wyboru lub warunek wyboru dla definicji, ale nie ma maksymalnej liczby elementów, które można określić.

  • SelectionSetName element (nie jest wyświetlany) określa zestaw obiektów, które mogą być wyświetlane przez tę definicję. Należy określić co najmniej jeden typ, zestaw wyboru lub warunek wyboru dla definicji, ale nie ma maksymalnej liczby elementów, które można określić.

  • SelectionCondition element (nie jest wyświetlany) określa warunek, który musi istnieć dla tej definicji, aby można było użyć. Należy określić co najmniej jeden typ, zestaw wyboru lub warunek wyboru dla definicji, ale nie ma maksymalnej liczby elementów, które można określić. Aby uzyskać więcej informacji na temat definiowania warunków wyboru, zobacz Definiowanie warunków wyświetlania danych.

Wyświetlanie grup obiektów w widoku listy

Obiekty wyświetlane w widoku listy można oddzielić na grupy. Nie oznacza to, że definiujesz grupę, tylko Windows PowerShell uruchamia nową grupę przy każdej zmianie wartości określonej właściwości lub skryptu. W poniższym przykładzie nowa grupa jest uruchomiona przy każdej zmianie wartości właściwości System.Serviceprocess.Servicecontroller.Servicetype.

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

Następujące elementy XML służą do definiowania, kiedy grupa jest uruchomiona:

  • GroupBy element definiuje właściwość lub skrypt, który uruchamia nową grupę i definiuje sposób wyświetlania grupy.

  • PropertyName element określa właściwość, która uruchamia nową grupę za każdym razem, gdy jej wartość zmienia się. Należy określić właściwość lub skrypt, aby uruchomić grupę, ale nie można określić obu.

  • Element ScriptBlock określa skrypt, który uruchamia nową grupę przy każdej zmianie jej wartości. Należy określić skrypt lub właściwość, aby uruchomić grupę, ale nie można określić obu.

  • Etykieta element definiuje etykietę, która jest wyświetlana na początku każdej grupy. Oprócz tekstu określonego przez ten element element Windows PowerShell wartość, która wyzwoliła nową grupę, i dodaje pusty wiersz przed etykietą i za etykietą. Ten element jest opcjonalny.

  • CustomControl element definiuje formant, który jest używany do wyświetlania danych. Ten element jest opcjonalny.

  • CustomControlName element określa formantu wspólnego lub widoku, który jest używany do wyświetlania danych. Ten element jest opcjonalny.

Aby uzyskać przykład pełnego pliku formatowania definiującego grupy, zobacz Widok listy (GroupBy).

Używanie ciągów formatu

Ciągi formatowania można dodać do widoku, aby jeszcze bardziej zdefiniować sposób wyświetlania danych. W poniższym przykładzie pokazano, jak zdefiniować ciąg formatowania dla wartości StartTime właściwości.

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

Następujące elementy XML mogą służyć do określania wzorca formatu:

  • ListItem element określa dane, które są wyświetlane w widoku.

  • PropertyName element określa właściwość, której wartość jest wyświetlana w widoku. Należy określić właściwość lub skrypt, ale nie można określić obu tych właściwości.

  • Element FormatString określa wzorzec formatu, który definiuje sposób wyświetlania właściwości lub wartości skryptu w widoku.

  • Element ScriptBlock (nie jest wyświetlany) określa skrypt, którego wartość jest wyświetlana w widoku. Należy określić skrypt lub właściwość, ale nie można określić obu tych właściwości.

W poniższym przykładzie metoda jest wywoływana w celu ToString sformatowania wartości skryptu. Skrypty mogą wywołać dowolną metodę obiektu. W związku z tym, jeśli obiekt ma metodę, taką jak , która ma parametry formatowania, skrypt może wywołać tę metodę w celu sformatowania ToString wartości wyjściowej skryptu.

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

Następujący element XML może służyć do wywoływania ToString metody :

  • ListItem element określa dane, które są wyświetlane w widoku.

  • Element ScriptBlock (nie jest wyświetlany) określa skrypt, którego wartość jest wyświetlana w widoku. Należy określić skrypt lub właściwość, ale nie można określić obu tych właściwości.

Zobacz też

Pisanie polecenia cmdlet programu Windows PowerShell