Nyelv
Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A ListView vezérlő biztosítja az infrastruktúrát az adatelemek egy másik elrendezés vagy nézet használatával való megjelenítéséhez. Előfordulhat például, hogy egy táblában szeretné megjeleníteni az adatelemeket, és rendezni az oszlopait is.
A ListView a ListBox-ből származik. Az elemek általában egy adatgyűjtés tagjai, és objektumokként ListViewItem jelennek meg. A ListViewItem egy ContentControl, és csak egy gyermekelemet tartalmazhat. Ez a gyermekelem azonban bármilyen vizuális elem lehet.
Megjegyzés:
A cikkben hivatkozott típusok a Kód hivatkozási szakaszában érhetők el.
Az alábbi táblázat a ListView vezérlőelem használatának gyakori feladatait sorolja fel:
| Cím | Description |
|---|---|
| GridView-oszlop rendezése fejlécre kattintáskor | Megtudhatja, hogyan rendezheti a GridView oszlopot, ha egy fejlécre kattint. |
| Egyéni nézetmód létrehozása ListView-hoz | Megtudhatja, hogyan hozhat létre egyéni nézetmódot a ListView-hoz. |
| Sablonok használata a GridView-t használó ListView stílusához | Megtudhatja, hogyan használhat sablonokat a GridView-t használó ListView stílusához. |
| Stílus létrehozása egy mozgatott GridView oszlopfejléchez | Megtudhatja, hogyan hozhat létre stílust egy húzott GridView-oszlopfejléchez. |
| ListView-tartalom megjelenítése GridView használatával | Megtudhatja, hogyan jelenítheti meg a ListView-tartalmakat a GridView használatával. |
| Kijelölt elemek stílusa a ListView-ban eseményindítók használatával | Megtudhatja, hogyan használhatja az eseményindítókat a kijelölt elemek stílusához a ListView-ban. |
| ListViewItems létrehozása jelölőnégyzettel | Megtudhatja, hogyan hozhat létre ListViewItems-eket jelölőnégyzettel. |
| Adatok megjelenítése a GridViewRowPresenter használatával | Megtudhatja, hogyan jeleníthet meg adatokat a GridViewRowPresenter használatával. |
| GridView-t implementáló Listanézet elemeinek csoportosítása | Megtudhatja, hogyan csoportosíthat elemeket egy GridView-t implementáló ListView-ban. |
| Sor stílusa a GridView-t implementáló ListView-ban | Megtudhatja, hogyan formázhat sorokat a GridView-t implementáló ListView-ban. |
| Oszlop vízszintes igazításának módosítása ListView-ban | Megtudhatja, hogyan módosíthatja egy oszlop vízszintes igazítását a ListView-ban. |
| A ListView minden eleméhez tartozó MouseDoubleClick esemény kezelése | Megtudhatja, hogyan kezelheti a ListView egyes elemeihez tartozó MouseDoubleClick eseményt. |
Stílusok és sablonok
Módosíthatja az alapértelmezett beállítást ControlTemplate , hogy egyedi megjelenést adjon a vezérlőnek. További információ: Mik azok a stílusok és sablonok? és hogyan hozhat létre sablonokat vezérlőkhöz.
Tartalomtulajdonság
A ListView vezérlő a Items tulajdonságot használja tartalomtulajdonságként. Ez a tulajdonság lehetővé teszi a vezérlőelemben megjelenített elemek megadását.
Részek
A ListView vezérlő nem definiál elnevezett sablonrészeket.
Amikor létrehoz egy ControlTemplate egy ListView számára, előfordulhat, hogy a sablon tartalmaz egy ItemsPresenter-t egy ScrollViewer-en belül. A ItemsPresenter megjeleníti az egyes elemeket a ListViewvezérlőben, és ScrollViewer lehetővé teszi a görgetést a vezérlőn belül. Ha az ItemsPresenter nem a ScrollViewer közvetlen gyermeke, akkor a ItemsPresenter-nek nevet kell adnia, ItemsPresenter.
Vizualizációs állapotok
Az alábbi táblázat a vezérlőelem vizualizációs állapotát sorolja fel ListView .
| VisualState név | VisualStateGroup neve | Description |
|---|---|---|
| Érvényes | ÉrvényesítésiÁllapotok | A vezérlő érvényes, és nem rendelkezik érvényesítési hibával. |
| InvalidFocused (ÉrvénytelenFókuszálás) | ÉrvényesítésiÁllapotok | A vezérlő érvényesítési hibával rendelkezik, és billentyűzetfókuszt használ. |
| ÉrvénytelenFókuszNélküli | ÉrvényesítésiÁllapotok | A vezérlő érvényesítési hibával rendelkezik, de nincs billentyűzetfókusza. |
Az alábbi táblázat a vezérlőelem állapotait sorolja fel ListViewItem .
| VisualState név | VisualStateGroup neve | Description |
|---|---|---|
| Normal | CommonStates | Az alapértelmezett állapot. |
| Disabled | CommonStates | A vezérlő le van tiltva. |
| Egér fölé húzás | CommonStates | Az egérmutató a vezérlő felett van. |
| Focused | FocusStates | A vezérlő billentyűzetfókuszt használ. |
| Fókuszálatlan | FocusStates | A vezérlő nem rendelkezik billentyűzetfókusszal. |
| Kiválasztott | Kiválasztási Állapotok | Az elem jelenleg ki van jelölve. |
| Nincs kiválasztva | Kiválasztási Állapotok | Az elem nincs kijelölve. |
| Kiválasztott, de nincs fókuszban | Kiválasztási Állapotok | Az elem ki van jelölve, de nincs billentyűzetfókusza. |
| Érvényes | ÉrvényesítésiÁllapotok | A vezérlő érvényes, és nem rendelkezik érvényesítési hibával. |
| InvalidFocused (ÉrvénytelenFókuszálás) | ÉrvényesítésiÁllapotok | A vezérlő érvényesítési hibával rendelkezik, és billentyűzetfókuszt használ. |
| ÉrvénytelenFókuszNélküli | ÉrvényesítésiÁllapotok | A vezérlő érvényesítési hibával rendelkezik, de nincs billentyűzetfókusza. |
Megtekintési módok
A vezérlőelem tartalmának nézetmódjának ListView megadásához állítsa be a tulajdonságot View . A Windows Presentation Foundation (WPF) egyik nézetmódja a GridView, amely testreszabható oszlopokat tartalmazó táblázatban jelenít meg adatelemek gyűjteményét.
Az alábbi példa bemutatja, hogyan definiálhat olyan GridView vezérlőket ListView , amelyek az alkalmazottak adatait jelenítik meg.
<ListView ItemsSource="{Binding Source={StaticResource EmployeeInfoDataSource}}">
<ListView.View>
<GridView AllowsColumnReorder="true" ColumnHeaderToolTip="Employee Information">
<GridViewColumn DisplayMemberBinding="{Binding Path=FirstName}" Header="First Name" Width="100"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=LastName}" Width="100">
<GridViewColumnHeader>Last Name
<GridViewColumnHeader.ContextMenu>
<ContextMenu MenuItem.Click="LastNameCM_Click" Name="LastNameCM">
<MenuItem Header="Ascending" />
<MenuItem Header="Descending" />
</ContextMenu>
</GridViewColumnHeader.ContextMenu>
</GridViewColumnHeader>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=EmployeeNumber}" Header="Employee No." Width="100"/>
</GridView>
</ListView.View>
</ListView>
Új nézetmódot hozhat létre úgy, hogy egy osztályt definiál, amely az ViewBase osztályból örököl. Az ViewBase osztály biztosítja az egyéni nézet létrehozásához szükséges infrastruktúrát. Az egyéni nézetek létrehozásáról további információt a ListView egyéni nézetmódjának létrehozása című témakörben talál.
Megosztási nézetmódok
Két ListView vezérlő egyszerre nem oszthatja meg ugyanazt a nézetmódot. Ha ugyanazt a nézetmódot egynél ListView több vezérlővel próbálja használni, kivétel történik. Ha olyan nézetmódot szeretne megadni, amelyet egyszerre többen ListViewis használhatnak, használjon sablonokat vagy stílusokat.
Adatkötés
A Items és ItemsSource tulajdonságokkal adhat meg elemeket egy ListView vezérlőhöz. Az alábbi példa a ItemsSource tulajdonságot egy úgynevezett EmployeeInfoDataSourceadatgyűjtésre állítja be.
<ListView ItemsSource="{Binding Source={StaticResource EmployeeInfoDataSource}}">
GridViewEgy objektum GridViewColumn adott adatmezőkhöz kötődik. Az alábbi példa egy GridViewColumn objektumot egy adatmezőhöz köt egy tulajdonság megadásával BindingDisplayMemberBinding .
GridViewColumn gvc1 = new GridViewColumn();
gvc1.DisplayMemberBinding = new Binding("FirstName");
gvc1.Header = "FirstName";
gvc1.Width = 100;
Dim gvc1 As New GridViewColumn()
gvc1.DisplayMemberBinding = New Binding("FirstName")
gvc1.Header = "FirstName"
gvc1.Width = 100
<GridViewColumn DisplayMemberBinding="{Binding Path=FirstName}" Header="First Name" Width="100"/>
A Binding részeként is megadhat egy DataTemplate definíciót, amellyel az oszlop celláit stílusozhatja. Az alábbi példában a DataTemplate által azonosított ResourceKey beállít egy Binding számára GridViewColumn-t. Vegye figyelembe, hogy ez a példa nem határozza meg a DisplayMemberBinding-t, mert ennek meghatározása előnyt jelentene a CellTemplate-hez képest.
<DataTemplate x:Key="myCellTemplateMonth">
<DockPanel>
<TextBlock Foreground="DarkBlue" HorizontalAlignment="Center">
<TextBlock.Text>
<Binding Path="Month"/>
</TextBlock.Text>
</TextBlock>
</DockPanel>
</DataTemplate>
<GridViewColumn Header="Month" Width="80"
CellTemplate="{StaticResource myCellTemplateMonth}"/>
A ListView vezérlők stílusa
A ListView vezérlő objektumokat tartalmaz ListViewItem , amelyek a megjelenített adatelemeket jelölik. Az adatelemek tartalmát és stílusát az alábbi tulajdonságok használatával határozhatja meg:
- A vezérlőn használja a ListView , ItemTemplateés ItemTemplateSelector a ItemContainerStyletulajdonságokat.
- A ListViewItem vezérlőn használja a ContentTemplate és ContentTemplateSelector tulajdonságokat.
A cellák GridViewközötti igazítási problémák elkerülése érdekében ne adja meg a ItemContainerStyle tulajdonságokat, és ne adjon hozzá olyan tartalmat, amely befolyásolja egy elem ListViewszélességét. Igazítási probléma például akkor fordulhat elő, ha a Margin tulajdonságot a ItemContainerStyle fájlban állítja be. A tulajdonságok megadásához vagy az elemek GridView szélességét befolyásoló tartalom meghatározásához használja a GridView osztály és a kapcsolódó osztályok tulajdonságait, például a GridViewColumn. A használat GridView módjáról és az azt támogató osztályokról a GridView áttekintésében olvashat bővebben.
Ha definiál egy ItemContainerStyle egy ListView vezérlő számára, és definiál egy vezérlőt ItemTemplate is, a megfelelő működéshez be kell foglalnia egy ContentPresenter–t a stílusba annak érdekében, hogy a ItemTemplate megfelelően működjön.
Ne használja az HorizontalContentAlignment és VerticalContentAlignment tulajdonságokat ListView tartalom GridView általi megjelenítéshez. Ha meg szeretné adni a tartalom igazítását egy GridViewoszlopban, definiáljon egy CellTemplate.
Kódhivatkozás
Ebben a cikkben a következő objektumokra hivatkozunk:
EmployeeInfoDataSourceadatgyűjtés. Ha Visual Basic .NET-et használ, azWindowelem deklarálása kissé eltér a példakódban láthatótól:<Window x:Class="SDKSample.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Loaded="OnLoad" xmlns:ds="clr-namespace:SDKSample"> <Window.Resources> <ObjectDataProvider x:Key="EmployeeInfoDataSource" ObjectType="{x:Type ds:myEmployees}" /> </Window.Resources>EmployeeInfoosztályt, amelyetEmployeeInfoDataSourceadatgyűjtéshez típusaként használnak.public class EmployeeInfo { private string _firstName; private string _lastName; private string _employeeNumber; public string FirstName { get {return _firstName;} set {_firstName = value;} } public string LastName { get {return _lastName;} set {_lastName = value;} } public string EmployeeNumber { get {return _employeeNumber;} set {_employeeNumber = value;} } public EmployeeInfo(string firstname, string lastname, string empnumber) { _firstName = firstname; _lastName = lastname; _employeeNumber = empnumber; } }Public Class EmployeeInfo Private _firstName As String Private _lastName As String Private _employeeNumber As String Public Property FirstName() As String Get Return _firstName End Get Set(ByVal value As String) _firstName = value End Set End Property Public Property LastName() As String Get Return _lastName End Get Set(ByVal value As String) _lastName = value End Set End Property Public Property EmployeeNumber() As String Get Return _employeeNumber End Get Set(ByVal value As String) _employeeNumber = value End Set End Property Public Sub New(ByVal firstname As String, ByVal lastname As String, ByVal empnumber As String) _firstName = firstname _lastName = lastname _employeeNumber = empnumber End Sub End Class
Lásd még
.NET Desktop feedback