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


Tablo görünümü verileri bir veya daha fazla sütunda görüntüler. Tablodaki her satır bir .NET nesnesini temsil eder ve tablonun her sütunu, nesnenin bir özelliğini veya bir komut dosyası değerini temsil eder. Bir nesnenin tüm özelliklerini veya nesnenin özelliklerinin bir alt kümesini görüntüleyen bir tablo görünümü tanımlayabilirsiniz.

Tablo Görünümü Ekranı

Aşağıdaki örnek, Windows PowerShell'in Get-Service cmdlet'i tarafından döndürülen System.Serviceprocess.Servicecontroller nesnesini nasıl görüntülediğini gösterir. Bu nesne için Windows PowerShell, Status özelliğini, Name özelliğini (bu özellik ServiceName özelliği) ve DisplayName özelliği. Tablodaki her satır cmdlet tarafından döndürülen bir nesneyi temsil eder.

Status   Name               DisplayName
------   ----               -----------
Stopped  AJRouter           AllJoyn Router Service
Stopped  ALG                Application Layer Gateway Service
Stopped  AppIDSvc           Application Identity
Running  Appinfo            Application Information

Tablo Görünümünü Tanımlama

Aşağıdaki XML, System.Serviceprocess.Servicecontroller?Displayproperty=Fullname nesnesini görüntülemek için tablo görünümü şemasını gösterir. Tablo görünümünde görüntülenmesini istediğiniz her özelliği belirtmeniz gerekir.

<View>
  <Name>service</Name>
  <ViewSelectedBy>
    <TypeName>System.ServiceProcess.ServiceController</TypeName>
  </ViewSelectedBy>
  <TableControl>
    <TableHeaders>
      <TableColumnHeader>
        <Width>8</Width>
      </TableColumnHeader>
      <TableColumnHeader>
        <Width>18</Width>
      </TableColumnHeader>
      <TableColumnHeader>
        <Width>38</Width>
      </TableColumnHeader>
    </TableHeaders>
    <TableRowEntries>
      <TableRowEntry>
        <TableColumnItems>
          <TableColumnItem>
           <PropertyName>Status</PropertyName>
          </TableColumnItem>
          <TableColumnItem>
            <PropertyName>Name</PropertyName>
          </TableColumnItem>
          <TableColumnItem>
            <PropertyName>DisplayName</PropertyName>
          </TableColumnItem>
        </TableColumnItems>
      </TableRowEntry>
    </TableRowEntries>
  </TableControl>
</View>

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

  • Görünüm öğesi, tablo görünümünün ana öğesidir. (Bu, liste, geniş 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 (bu örnekte gösterilmemiştir), 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 öğesi (bu örnekte gösterilmemiştir), tablo 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.

  • HideTableHeaders öğesi (bu örnekte gösterilmemiştir), tablonun, tablonun üst kısmında herhangi bir etiket göstermeyeceğini belirtir. Bu öğe isteğe bağlıdır.

  • Tablonun başlık ve satır bilgilerini tanımlayan TableControl öğesi. Diğer tüm görünümlere benzer şekilde, bir tablo görünümü, nesne özelliklerinin değerlerini veya komut dosyaları tarafından oluşturulan değerleri görüntüleyebilir.

Sütun Başlıklarını Tanımlama

  1. TableHeaders öğesi ve onun alt öğeleri, tablonun üst kısmında neyin görüntüleneceğini tanımlar.

  2. TableColumnHeader öğesi, tablonun bir sütununun üstünde neyin görüntüleneceğini tanımlar. Bu öğeleri, başlıkların görüntülenmesini istediğiniz sırayla belirtin.

    Kullanabileceğiniz bu öğelerin sayısında herhangi bir sınırlama yoktur ancak tablo görünümünüzdeki TableColumnHeader öğelerinin sayısı, kullandığınız TableRowEntry öğelerinin sayısına eşit olmalıdır.

  3. Label öğesi görüntülenen metni belirtir. Bu öğe isteğe bağlıdır.

  4. Genişlik öğesi sütunun genişliğini (karakter cinsinden) belirtir. Bu öğe isteğe bağlıdır.

  5. Hizalama öğesi etiketin nasıl görüntüleneceğini belirtir. Etiket sola, sağa veya ortaya hizalanabilir. Bu öğe isteğe bağlıdır.

Tablo Satırlarını Tanımlama

Tablo görünümleri, TableRowEntries öğesinin alt öğelerini kullanarak tablonun satırlarında hangi verilerin görüntüleneceğini belirten bir veya daha fazla tanım sağlayabilir. Tablonun satırları için birden fazla tanım belirtebileceğinizi, ancak hangi satır tanımının kullanıldığına bakılmaksızın satırların başlıklarının aynı kaldığını unutmayın. Tipik olarak bir tablonun yalnızca bir tanımı olacaktır.

Aşağıdaki örnekte görünüm, System.Diagnostics.Process?Displayproperty=Fullname nesnesinin çeşitli özelliklerinin değerlerini görüntüleyen tek bir tanım sağlar. Bir tablo görünümü, bir özelliğin değerini veya bir komut dosyasının değerini (örnekte gösterilmemiştir) satırlarında görüntüleyebilir.

<TableRowEntries>
      <TableRowEntry>
        <TableColumnItems>
          <TableColumnItem>
           <PropertyName>Status</PropertyName>
          </TableColumnItem>
          <TableColumnItem>
            <PropertyName>Name</PropertyName>
          </TableColumnItem>
          <TableColumnItem>
            <PropertyName>DisplayName</PropertyName>
          </TableColumnItem>
        </TableColumnItems>
      </TableRowEntry>
    </TableRowEntries>

Bir satıra tanım sağlamak için aşağıdaki XML öğeleri kullanılabilir:

  • TableRowEntries öğesi ve onun alt öğeleri, tablonun satırlarında neyin görüntüleneceğini tanımlar.

  • TableRowEntry öğesi satırın tanımını sağlar. En az bir TableRowEntry 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 TableRowEntry öğesi tanımladığınızda gereklidir.

  • Wrap öğesi, sütun genişliğini aşan metnin bir sonraki satırda görüntüleneceğini belirtir. Varsayılan olarak sütun genişliğini aşan metin kesilir.

  • TableColumnItems öğesi, değerleri satırda görüntülenen özellikleri veya komut dosyalarını tanımlar.

  • TableColumnItem öğesi, değeri satırın sütununda görüntülenen özelliği veya komut dosyasını tanımlar. Satırın her sütunu için bir TableColumnItem öğesi gereklidir. İlk giriş birinci sütunda, ikinci giriş ikinci sütunda vb. görüntülenir.

  • PropertyName öğesi, değeri satırda görüntülenen özelliği belirtir. Bir özellik ya da komut dosyası belirtmelisiniz ancak ikisini birden belirtemezsiniz.

  • ScriptBlock öğesi, değeri satırda görüntülenen betiği belirtir. Bir komut dosyası veya bir özellik belirtmeniz gerekir ancak ikisini birden belirtemezsiniz.

  • FormatString öğesi, özelliğin veya kod değerinin nasıl görüntüleneceğini tanımlayan bir biçim modelini belirtir. Bu öğe isteğe bağlıdır.

  • Hizalama öğesi, özelliğin veya komut dosyasının değerinin nasıl görüntüleneceğini belirtir. Değer sola, sağa veya ortaya hizalanabilir. Bu öğe isteğe bağlıdır.

Tablo Görünümünü Kullanan Nesneleri Tanımlama

Hangi .NET nesnelerinin tablo görünümünü 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 öğeleri kullanılarak tablo görünümü tarafından 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.ServiceProcess.ServiceController</TypeName>
  </ViewSelectedBy>
  <TableControl>...</TableControl>
</View>

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

  • ViewSelectedBy öğesi, liste görünümü tarafından hangi nesnelerin görüntüleneceğini tanımlar.

  • TypeName öğesi, görünüm tarafından görüntülenen .NET nesnesini 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.

Aşağıdaki örnekte ViewSelectedBy ve SelectionSetName öğeleri kullanılmaktadır. Aynı nesneler için bir liste görünümü ve 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>
  <TableControl>...</TableControl>
</View>

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

  • ViewSelectedBy öğesi, liste görünümü tarafından 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 tablo görünümünü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.

Not

Tablo görünümünün birden fazla tanımını oluştururken farklı sütun başlıkları belirleyemezsiniz. Hangi nesnelerin görüntüleneceği gibi yalnızca tablonun satırlarında neyin görüntüleneceğini belirtebilirsiniz.

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

Liste görünümünü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 nesnesini 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.

Biçim Dizelerini Kullanma

Verilerin nasıl görüntüleneceğini daha ayrıntılı olarak tanımlamak için 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.

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

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

  • TableColumnItem öğesi, değeri satırın sütununda görüntülenen özelliği veya komut dosyasını tanımlar. Satırın her sütunu için bir TableColumnItem öğesi gereklidir. İlk giriş birinci sütunda, ikinci giriş ikinci sütunda vb. görüntülenir.

  • PropertyName öğesi, değeri satırda 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 nasıl görüntüleneceğini tanımlayan bir biçim modelini belirtir.

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.

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

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

  • TableColumnItem öğesi, değeri satırın sütununda görüntülenen özelliği veya komut dosyasını tanımlar. Satırın her sütunu için bir TableColumnItem öğesi gereklidir. İlk giriş birinci sütunda, ikinci giriş ikinci sütunda vb. görüntülenir.

  • ScriptBlock öğesi, değeri satırda görüntülenen betiği belirtir. Bir komut dosyası veya bir özellik belirtmeniz gerekir ancak ikisini birden belirtemezsiniz.

Ayrıca Bakınız

PowerShell Biçimlendirme Dosyası Yazma

İlgili makaleler