Sự khác nhau giữa ListBox và ListView của WPF là gì? Tôi không thể tìm thấy bất kỳ sự khác biệt đáng kể trong tài sản của họ. Có cách sử dụng điển hình khác không?Sự khác nhau giữa ListBox và ListView
Trả lời
A ListView
về cơ bản giống như ListBox
(và thừa kế từ nó), nhưng nó cũng có thuộc tính View
. Thuộc tính này cho phép bạn chỉ định cách hiển thị trước các mục. Chế độ xem được xác định trước duy nhất trong BCL là GridView
, nhưng bạn có thể dễ dàng create your own.
khác biệt nữa là chế độ lựa chọn mặc định: đó là Single
cho một ListBox
, nhưng Extended
cho một ListView
Một ListView
phép bạn xác định một tập hợp các views
cho nó và cung cấp cho bạn một cách tự nhiên (WPF
binding
hỗ trợ) để kiểm soát hiển thị ListView
bằng cách sử dụng được xác định views
.
Ví dụ:
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;
}
OUTPUT:
Normal View: View 2 ở trên XAML
MouseOver Xem: Xem 1 trong trên XAML
Nếu bạn cố gắng để đạt được nêu trên trong một
ListBox
, có lẽ bạn sẽ kết thúc việc viết mã nhiều hơn choControlTempalate
/ItemTemplate
củaListBox
.
Danh sách phát sinh từ điều khiển hộp danh sách. Một khác biệt quan trọng nhất là listview sử dụng chế độ lựa chọn mở rộng theo mặc định. listview cũng thêm một thuộc tính được gọi là khung nhìn cho phép bạn tùy chỉnh chế độ xem theo cách phong phú hơn một itemspanel tùy chỉnh. Một ví dụ thực tế về đời sống của listview với GridView là xem chi tiết của tập tin thám hiểm. Chế độ xem danh sách với chế độ xem lưới là lưới dữ liệu ít mạnh mẽ hơn. Sau khi giới thiệu danh sách kiểm soát datagrid kiểm soát bị mất tầm quan trọng của nó.
- 1. Android: Sự khác biệt giữa getCount() và getChildCount() trong ListView
- 2. Sự khác nhau giữa BaseAdapter và ArrayAdapter là gì?
- 3. Sự khác nhau giữa .Equals và ==
- 4. Sự khác nhau giữa% w và% W
- 5. Sự khác nhau giữa ParameterInfo.DefaultValue và ParameterInfo.RawDefaultValue
- 6. Sự khác nhau giữa MBean và MXBean
- 7. Sự khác nhau giữa ConfigurationManager và ConfigurationSettings
- 8. Sự khác nhau giữa Tkinter và Tkinter
- 9. Sự khác nhau giữa! = Và =! trong Java?
- 10. Sự khác nhau giữa 'SpecialFolder.LocalApplicationData' và 'SpecialFolder.ApplicationData'?
- 11. Sự khác nhau giữa String.getBytes() và IOUtils.toByteArray()?
- 12. Sự khác nhau giữa presentModalViewController và presentViewController?
- 13. Sự khác nhau giữa NSInvocationOperation và NSBlockOperation
- 14. Sự khác nhau giữa TVar và TMVar
- 15. Sự khác nhau giữa onClickListener và onItemClickListener
- 16. Sự khác nhau giữa `require` và` gem`
- 17. Sự khác nhau giữa HttpUtility.HtmlEncode và Server.HtmlEncode
- 18. Sự khác nhau giữa sqlplus và sqldeveloper?
- 19. Sự khác nhau giữa JPA và JPA2
- 20. Sự khác nhau giữa DECIMAL và NUMERIC
- 21. Sự khác nhau giữa "./somescript.sh" và ". ./somescript.sh"
- 22. Sự khác nhau giữa GIT và CVS
- 23. Sự khác nhau giữa System.Drawing.Point và System.Drawing.PointF
- 24. Sự khác nhau giữa REST và WebServices
- 25. Sự khác nhau giữa sys và os.sys
- 26. Sự khác nhau giữa select() và selectAll()
- 27. Sự khác nhau giữa restartLoader và onContentChanged
- 28. Sự khác nhau giữa dbcontext.Add và dbcontext.AddObject
- 29. Sự khác nhau giữa int32_t và int_fast32_t
- 30. Sự khác nhau giữa | và || trong MATLAB?
Bạn có ý gì với BCL? Cảm ơn. –
@DanieleArmanasco, BCL = [Thư viện lớp cơ sở] (http://en.wikipedia.org/wiki/Base_Class_Library) –