3 ответов:
A
ListViewЭто какListBox(и наследует от него), но он также имеетViewсобственность. Это свойство позволяет указать предопределенный способ отображения элементов. Единственное предопределенное представление в BCL (Библиотека Базовых Классов) составляетGridView, но вы можете легко создать свой собственный.еще одно отличие-это режим выбора по умолчанию: это
SingleнаListBox, аExtendedнаListView
A
ListViewпозвольте вам определить наборviewsза это и дает вам родной способом (WPFbindingподдержка) для управления отображениемListViewС помощью definedviews.пример:
XAML<ListView ItemsSource="{Binding list}" Name="listv" MouseEnter="listv_MouseEnter" MouseLeave="listv_MouseLeave"> <ListView.Resources> <GridView x:Key="one"> <GridViewColumn Header="ID" > <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding id}" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Header="Name" > <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding name}" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> <GridView x:Key="two"> <GridViewColumn Header="Name" > <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding name}" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.Resources> <ListView.Style> <Style TargetType="ListView"> <Style.Triggers> <DataTrigger Binding="{Binding ViewType}" Value="1"> <Setter Property="View" Value="{StaticResource one}" /> </DataTrigger> </Style.Triggers> <Setter Property="View" Value="{StaticResource two}" /> </Style> </ListView.Style>
Code Behind:private int viewType; public int ViewType { get { return viewType; } set { viewType = value; UpdateProperty("ViewType"); } } private void listv_MouseEnter(object sender, MouseEventArgs e) { ViewType = 1; } private void listv_MouseLeave(object sender, MouseEventArgs e) { ViewType = 2; }выход:
нормальный Вид: Вид 2 в выше
XAMLвид наведения мыши: вид 1 в выше
XAMLесли вы пытаетесь достичь выше в
ListBox, вероятно, вы будете в конечном итоге писать гораздо больше кода дляControlTempalate/ItemTemplateнаListBox.
Listview является производным от элемента управления listbox. Одним из наиболее важных отличий является listview использует режим расширенного выбора по умолчанию . listview также добавляет свойство с именем view, которое позволяет настроить представление более богатым способом, чем пользовательская itemspanel. Одним из реальных примеров listview с gridview является представление сведений проводника. Listview с видом сетки-это менее мощная сетка данных. После введения DataGrid элемент управления ListView не утратила своего значения.


Comments