Geniş Görünüm Oluşturma


Geniş görünümde görüntülenen her nesne için tek bir değer görüntülenir. Görüntülenen değer, bir .NET nesne özelliğinin değeri veya bir komut dosyasının değeri olabilir. Varsayılan olarak bu görünüm için etiket veya başlık yoktur.

Geniş Görüş Açılı Ekran

Aşağıdaki örnek, Windows PowerShell'in, çıktısı Format-Wide cmdlet'ine aktarıldığında Get-Process cmdlet'i tarafından döndürülen System.Diagnostics.Process nesnesini nasıl görüntülediğini gösterir. (Varsayılan olarak Get-Process cmdlet'i bir tablo görünümü döndürür.) Bu örnekte iki sütun, döndürülen her nesne için işlemin adını görüntülemek için kullanılır. Nesnenin özelliğinin adı görüntülenmez, yalnızca özelliğin değeri görüntülenir.

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

Geniş Görüşü Tanımlama

Aşağıdaki XML, System.Diagnostics.Process nesnesinin geniş görünüm şemasını gösterir.

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

Geniş görünümü tanımlamak için aşağıdaki XML öğeleri kullanılır:

  • Görünüm öğesi geniş görünümün ana öğesidir. (Bu, tablo, liste ve özel kontrol görünümleri için aynı ana öğedir.)
  • Name öğesi görünümün adını belirtir. Bu öğe tüm görünümler için gereklidir.
  • ViewSelectedBy öğesi, görünümü kullanan nesneleri tanımlar. Bu öğe gereklidir.
  • GroupBy öğesi, yeni bir nesne grubunun ne zaman görüntüleneceğini tanımlar. Belirli bir özelliğin veya komut dosyasının değeri değiştiğinde yeni bir grup başlatılır. Bu öğe isteğe bağlıdır.
  • Kontroller öğeleri, geniş görünüm tarafından tanımlanan özel kontrolleri tanımlar. Kontroller size verilerin nasıl görüntüleneceğini daha ayrıntılı olarak belirtmenin bir yolunu sunar. Bu öğe isteğe bağlıdır. Bir görünüm kendi özel kontrollerini tanımlayabilir veya biçimlendirme dosyasındaki herhangi bir görünüm tarafından kullanılabilen ortak kontrolleri kullanabilir. Özel denetimler hakkında daha fazla bilgi için bkz. Özel Denetimler Oluşturma.
  • WideControl öğesi ve onun alt öğeleri, görünümde neyin görüntüleneceğini tanımlar. Önceki örnekte görünüm, System.Diagnostics.Process.ProcessName özelliğini görüntüleyecek şekilde tasarlanmıştır.

Basit bir geniş görünümü tanımlayan eksiksiz bir biçimlendirme dosyası örneği için bkz. Geniş Görünüm (Temel).

Geniş Görüşünüz İçin Tanımlar Sağlamak

Geniş görünümler, WideControl öğesinin alt öğelerini kullanarak bir veya daha fazla tanım sağlayabilir. Tipik olarak bir görünümün yalnızca bir tanımı olacaktır. Aşağıdaki örnekte görünüm, System.Diagnostics.Process.ProcessName özelliğini görüntüleyen tek bir tanım sağlar. Geniş görünüm, bir özelliğin değerini veya bir komut dosyasının değerini (örnekte gösterilmemiştir) görüntüleyebilir.

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

Geniş bir görünüm için tanımlar sağlamak amacıyla aşağıdaki XML öğeleri kullanılabilir:

  • WideControl öğesi ve onun alt öğeleri, görünümde neyin görüntüleneceğini tanımlar.
  • AutoSize öğesi, sütun boyutunun ve sütun sayısının veri boyutuna göre ayarlanıp ayarlanmadığını belirtir. Bu öğe isteğe bağlıdır.
  • ColumnNumber öğesi, geniş görünümde görüntülenen sütun sayısını belirtir. Bu öğe isteğe bağlıdır.
  • WideEntries öğesi görünümün tanımlarını sağlar. Çoğu durumda bir görünümün yalnızca tek bir tanımı olacaktır. Bu öğe gereklidir.
  • WideEntry öğesi görünümün tanımını sağlar. En az bir WideEntry gereklidir; ancak ekleyebileceğiniz öğe sayısında maksimum bir sınır yoktur. Çoğu durumda bir görünümün yalnızca tek bir tanımı olacaktır.
  • EntrySelectedBy öğesi, belirli bir tanımla görüntülenen nesneleri belirtir. Bu öğe isteğe bağlıdır ve yalnızca farklı nesneleri görüntüleyen birden çok WideEntry öğesi tanımladığınızda gereklidir.
  • WideItem öğesi, görünüm tarafından görüntülenen verileri belirtir. Diğer görünüm türlerinin aksine, geniş bir kontrol yalnızca bir öğeyi görüntüleyebilir.
  • PropertyName öğesi, değeri görünüm tarafından görüntülenen özelliği belirtir. Bir özellik ya da komut dosyası belirtmelisiniz ancak ikisini birden belirtemezsiniz.
  • ScriptBlock öğesi, değeri görünüm tarafından görüntülenen betiği belirtir. Bir komut dosyasını veya bir özelliği belirtmeniz gerekir, ancak ikisini birden belirtemezsiniz.
  • FormatString öğesi, verileri görüntülemek için kullanılan bir modeli belirtir. Bu öğe isteğe bağlıdır.

Geniş görünüm tanımını tanımlayan eksiksiz bir biçimlendirme dosyası örneği için bkz. Geniş Görünüm (Temel).

Geniş Görüşü Kullanan Nesneleri Tanımlama

Hangi .NET nesnelerinin geniş görünümü kullanacağını tanımlamanın iki yolu vardır. Görünümün tüm tanımları tarafından görüntülenebilecek nesneleri tanımlamak için ViewSelectedBy öğesini kullanabilirsiniz veya görünümün belirli bir tanımıyla hangi nesnelerin görüntüleneceğini tanımlamak için EntrySelectedBy öğesini kullanabilirsiniz. Çoğu durumda, bir görünümün yalnızca bir tanımı vardır, dolayısıyla nesneler genellikle ViewSelectedBy öğesi tarafından tanımlanır.

Aşağıdaki örnek, ViewSelectedBy ve TypeName öğelerini kullanarak geniş görünümde görüntülenen nesnelerin nasıl tanımlanacağını gösterir. Belirtebileceğiniz TypeName öğelerinin sayısında herhangi bir sınırlama yoktur ve bunların sırası önemli değildir.

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

Geniş görünüm tarafından kullanılan nesneleri belirtmek için aşağıdaki XML öğeleri kullanılabilir:

  • ViewSelectedBy öğesi, geniş görünümde hangi nesnelerin görüntüleneceğini tanımlar.
  • TypeName öğesi, görünüm tarafından görüntülenen .NET'i belirtir. Tam nitelikli .NET türü adı gereklidir. Görünüm için en az bir tür veya seçim kümesi belirtmeniz gerekir ancak belirtilebilecek maksimum öğe sayısı yoktur.

Tam bir biçimlendirme dosyası örneği için bkz. Geniş Görünüm (Temel).

Aşağıdaki örnekte ViewSelectedBy ve SelectionSetName öğeleri kullanılmaktadır. Aynı nesneler için bir geniş görünüm ve bir tablo görünümü tanımladığınızda olduğu gibi, birden çok görünüm kullanılarak görüntülenen ilgili bir nesne kümesinin bulunduğu seçim kümelerini kullanın. Seçim kümesinin nasıl oluşturulacağı hakkında daha fazla bilgi için bkz. Seçim Kümelerini Tanımlama.

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

Geniş görünüm tarafından kullanılan nesneleri belirtmek için aşağıdaki XML öğeleri kullanılabilir:

  • ViewSelectedBy öğesi, geniş görünümde hangi nesnelerin görüntüleneceğini tanımlar.
  • SelectionSetName öğesi, görünüm tarafından görüntülenebilecek bir dizi nesneyi belirtir. Görünüm için en az bir seçim kümesi veya türü belirtmeniz gerekir ancak belirtilebilecek maksimum öğe sayısı yoktur.

Aşağıdaki örnek, EntrySelectedBy öğesi kullanılarak geniş görünümün belirli bir tanımıyla görüntülenen nesnelerin nasıl tanımlanacağını gösterir. Bu öğeyi kullanarak nesnenin .NET türü adını, nesnelerin seçim kümesini veya tanımın ne zaman kullanılacağını belirten bir seçim koşulunu belirtebilirsiniz. Seçim koşullarının nasıl oluşturulacağı hakkında daha fazla bilgi için bkz. Verileri Görüntülemek için Koşulları Tanımlama.

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

Geniş görünümün belirli bir tanımı tarafından kullanılan nesneleri belirtmek için aşağıdaki XML öğeleri kullanılabilir:

  • EntrySelectedBy öğesi, tanım tarafından hangi nesnelerin görüntüleneceğini tanımlar.
  • TypeName öğesi, tanım tarafından görüntülenen .NET'i belirtir. Bu öğeyi kullanırken tam nitelikli .NET türü adı gereklidir. Tanım için en az bir tür, seçim kümesi veya seçim koşulu belirtmeniz gerekir ancak belirtilebilecek maksimum öğe sayısı yoktur.
  • SelectionSetName öğesi (gösterilmemiştir), bu tanımla görüntülenebilecek bir dizi nesneyi belirtir. Tanım için en az bir tür, seçim kümesi veya seçim koşulu belirtmeniz gerekir ancak belirtilebilecek maksimum öğe sayısı yoktur.
  • SelectionCondition öğesi (gösterilmemiştir), bu tanımın kullanılması için mevcut olması gereken bir koşulu belirtir. Tanım için en az bir tür, seçim kümesi veya seçim koşulu belirtmeniz gerekir ancak belirtilebilecek maksimum öğe sayısı yoktur. Seçim koşullarını tanımlama hakkında daha fazla bilgi için bkz. Verileri Görüntülemek için Koşulları Tanımlama.

Nesne Gruplarını Geniş Görünümde Görüntüleme

Geniş görünümde görüntülenen nesneleri gruplara ayırabilirsiniz. Bu, bir grup tanımladığınız anlamına gelmez; yalnızca belirli bir özelliğin veya betiğin değeri değiştiğinde Windows PowerShell'in yeni bir grup başlattığı anlamına gelir. Aşağıdaki örnekte, System.Serviceprocess.Servicecontroller.Servicetype özelliğinin değeri her değiştiğinde yeni bir grup başlatılır.

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

Bir grubun ne zaman başlatıldığını tanımlamak için aşağıdaki XML öğeleri kullanılır:

  • GroupBy öğesi, yeni grubu başlatan özelliği veya betiği tanımlar ve grubun nasıl görüntüleneceğini tanımlar.
  • PropertyName öğesi, değeri değiştiğinde yeni bir grup başlatan özelliği belirtir. Grubu başlatmak için bir özellik veya komut dosyası belirtmeniz gerekir ancak ikisini birden belirtemezsiniz.
  • ScriptBlock öğesi, değeri değiştiğinde yeni bir grup başlatan betiği belirtir. Grubu başlatmak için bir komut dosyası veya özellik belirtmeniz gerekir ancak ikisini birden belirtemezsiniz.
  • Label öğesi, her grubun başında görüntülenen bir etiketi tanımlar. Bu öğe tarafından belirtilen metne ek olarak Windows PowerShell, yeni grubu tetikleyen değeri görüntüler ve etiketin önüne ve arkasına boş bir satır ekler. Bu öğe isteğe bağlıdır.
  • CustomControl öğesi, verileri görüntülemek için kullanılan bir denetimi tanımlar. Bu öğe isteğe bağlıdır.
  • CustomControlName öğesi, verileri görüntülemek için kullanılan ortak veya görünüm denetimini belirtir. Bu öğe isteğe bağlıdır.

Grupları tanımlayan eksiksiz bir biçimlendirme dosyası örneği için bkz. Geniş Görünüm (GroupBy).

Biçim Dizelerini Kullanma

Verilerin nasıl görüntüleneceğini daha ayrıntılı olarak tanımlamak için geniş görünüme biçimlendirme dizeleri eklenebilir. Aşağıdaki örnek, StartTime özelliğinin değeri için bir biçimlendirme dizesinin nasıl tanımlanacağını gösterir.

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

Bir format modelini belirtmek için aşağıdaki XML öğeleri kullanılabilir:

  • WideItem öğesi, görünüm tarafından görüntülenen verileri belirtir.
  • PropertyName öğesi, değeri görünüm tarafından görüntülenen özelliği belirtir. Bir özellik ya da komut dosyası belirtmelisiniz ancak ikisini birden belirtemezsiniz.
  • FormatString öğesi, özelliğin veya kod değerinin görünümde nasıl görüntüleneceğini tanımlayan bir biçim modelini belirtir.
  • ScriptBlock öğesi (gösterilmemiştir), değeri görünüm tarafından görüntülenen betiği belirtir. Bir komut dosyasını veya bir özelliği belirtmeniz gerekir, ancak ikisini birden belirtemezsiniz.

Aşağıdaki örnekte betiğin değerini biçimlendirmek için ToString yöntemi çağrıldı. Komut dosyaları bir nesnenin herhangi bir yöntemini çağırabilir. Bu nedenle, bir nesnenin biçimlendirme parametrelerine sahip ToString gibi bir yöntemi varsa, komut dosyası, betiğin çıkış değerini biçimlendirmek için bu yöntemi çağırabilir.

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

ToString yöntemini çağırmak için aşağıdaki XML öğesi kullanılabilir:

  • WideItem öğesi, görünüm tarafından görüntülenen verileri belirtir.
  • ScriptBlock öğesi (gösterilmemiştir), değeri görünüm tarafından görüntülenen betiği belirtir. Bir komut dosyasını veya bir özelliği belirtmeniz gerekir, ancak ikisini birden belirtemezsiniz.

Ayrıca Bakınız

  • Geniş Görüş (Temel)
  • Geniş Görünüm (Gruplama)
  • PowerShell Biçimlendirme Dosyası Yazma

İlgili makaleler