Tworzenie widoku szerokiego

Szeroki widok wyświetla jedną wartość dla każdego wyświetlanego obiektu. Wyświetlana wartość może być wartością właściwości obiektu .NET lub wartością skryptu. Domyślnie dla tego widoku nie ma etykiety ani nagłówka.

Wyświetlanie szerokiego widoku

W poniższym przykładzie pokazano, Windows PowerShell wyświetla obiekt System.Diagnostics.Process zwracany przez polecenie cmdlet Get-Process, gdy jego dane wyjściowe są potokowe do polecenia cmdlet Format-Wide. (Domyślnie polecenie cmdlet Get-Process zwraca widok tabeli). W tym przykładzie dwie kolumny są używane do wyświetlania nazwy procesu dla każdego zwróconego obiektu. Nazwa właściwości obiektu nie jest wyświetlana, a tylko wartość właściwości.

Get-Process | format-wide
AEADISRV                     agrsmsvc
Ati2evxx                     Ati2evxx
audiodg                      CCC
CcmExec                      communicator
Crypserv                     csrss
csrss                        DevDtct2
DM1Service                   dpupdchk
dwm                          DxStudio
EXCEL                        explorer
GoogleToolbarNotifier        GrooveMonitor
hpqwmiex                     hpservice
Idle                         InoRpc
InoRT                        InoTask
ipoint                       lsass
lsm                          MOM
MSASCui                      notepad
...                          ...

Definiowanie widoku szerokiego

Poniższy kod XML przedstawia schemat szerokiego widoku dla obiektu System.Diagnostics.Process.

View>
  <Name>process</Name>
  <ViewSelectedBy>
    <TypeName>System.Diagnostics.Process</TypeName>
  </ViewSelectedBy>
  <GroupBy>...</GroupBy>
  <Controls>...</Controls>
  <WideControl>
    <WideEntries>
      <WideEntry>
        <WideItem>
          <PropertyName>ProcessName</PropertyName>
        </WideItem>
      </WideEntry>
    </WideEntries>
  </WideControl>
</View>

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

  • View element jest elementem nadrzędnym szerokiego widoku. (Jest to ten sam element nadrzędny dla tabeli, listy i niestandardowych widoków kontrolek).

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

  • Elementy Kontrolki definiują niestandardowe kontrolki, które są zdefiniowane przez szeroki widok. 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.

  • WideControl element i jego elementy podrzędne definiują, co jest wyświetlane w widoku. W poprzednim przykładzie widok jest przeznaczony do wyświetlania właściwości System.Diagnostics.Process.Processname.

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

Udostępnianie definicji dla szerokiego widoku

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

<WideControl>
  <AutoSize/>
  <ColumnNumber></ColumnNumber>
  <WideEntries>
    <WideEntry>
      <WideItem>
        <PropertyName>ProcessName</PropertyName>
      </WideItem>
    </WideEntry>
  </WideEntries>
</WideControl>

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

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

  • AutoSize element określa, czy rozmiar kolumny i liczba kolumn są dostosowywane na podstawie rozmiaru danych. Ten element jest opcjonalny.

  • Element ColumnNumber określa liczbę kolumn wyświetlanych w szerokim widoku. Ten element jest opcjonalny.

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

  • Element WideEntry zawiera definicję widoku. Wymagany jest co najmniej jeden wideEntry; 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 WideEntry, które wyświetlają różne obiekty.

  • WideItem element określa dane, które są wyświetlane w widoku. W przeciwieństwie do innych typów widoków szeroka kontrolka może wyświetlać tylko jeden element.

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

  • FormatString element określa wzorzec, który jest używany do wyświetlania danych. Ten element jest opcjonalny.

Aby uzyskać przykład pełnego pliku formatowania definiującego szeroką definicję widoku, zobacz Widok szeroki (podstawowy).

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

Istnieją dwa sposoby definiowania, które obiekty .NET używają szerokiego widoku. 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 sposób definiowania obiektów wyświetlanych w widoku szerokim 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>
  <WideControl>...</WideControl>
</View>

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

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

  • TypeName element określa .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 szeroki (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, które są wyświetlane przy użyciu wielu widoków, na przykład podczas definiowania szerokiego widoku 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>
  <WideControl>...</WideControl>
</View>

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

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

  • 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 sposób definiowania obiektów wyświetlanych przez określoną definicję szerokiego widoku 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.

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

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

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

  • TypeName element określa .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 szerokim

Obiekty wyświetlane w szerokim widoku można rozdzielić 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, Windows PowerShell wyświetla 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 typową kontrolkę lub widoku, która jest używana do wyświetlania danych. Ten element jest opcjonalny.

Aby uzyskać przykład kompletnego pliku formatowania definiującego grupy, zobacz Widok szeroki (GroupBy).

Używanie ciągów formatu

Ciągi formatowania można dodać do szerokiego widoku, aby dodatkowo 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.

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

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

  • WideItem element określa dane, które są wyświetlane przez widok.

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

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.

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

Do wywołania metody można użyć następującego ToString elementu XML:

  • WideItem element określa dane, które są wyświetlane przez widok.

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

Zobacz też

Widok szeroki (podstawowy)

Widok szeroki (GroupBy)

Pisanie pliku formatującego programu PowerShell