ListBox와 ListView의 차이점은 무엇입니까
WPF의 ListBox와 ListView의 차이점은 무엇입니까? 나는 그들의 속성에서 큰 차이를 찾을 수 없습니다. 다른 일반적인 용도가 있습니까?
A ListView
는 기본적으로 a ListBox
와 비슷 하지만 그로부터 상속받습니다 View
. 이 속성을 사용하면 미리 정의 된 항목 표시 방법을 지정할 수 있습니다. BCL ( 기본 클래스 라이브러리 ) 에서 사전 정의 된 유일한보기는 자신 만의보기를GridView
쉽게 만들 수 있습니다 .
또 다른 차이점은 기본 선택 모드입니다 : 그것은 Single
A에 대한 ListBox
,하지만 Extended
A에 대한ListView
A는 ListView
당신이 세트 정의 할 수 views
그것을 위해 그리고 당신에게 기본 방법 (제공 WPF
binding
의 표시 제어 지원) ListView
정의를 사용하여을 views
.
예:
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
MouseOver보기 : 위의보기 1 XAML
에서 위의 목표를 달성하려고하면
ListBox
아마도ControlTempalate
/ItemTemplate
에 대한 더 많은 코드를 작성하게 될 것 입니다ListBox
.
Listview derives from listbox control. One most important difference is listview uses the extended selection mode by default . listview also adds a property called view which enables you to customize the view in a richer way than a custom itemspanel. One real life example of listview with gridview is file explorer's details view. Listview with grid view is a less powerful data grid. After the introduction of datagrid control listview lost its importance.
참고URL : https://stackoverflow.com/questions/4703641/what-is-the-difference-between-listbox-and-listview
'IT' 카테고리의 다른 글
함수의 서명에 키워드를 던져 (0) | 2020.05.16 |
---|---|
삼항 연산자로 허용되지만 if 문이 아닌 정수로 null을 반환 (0) | 2020.05.16 |
SSH를 통해 Eclipse로 원격 프로젝트 작업 (0) | 2020.05.16 |
launchd.conf를 통한 환경 변수 설정이 OS X Yosemite / El Capitan / macOS Sierra / Mojave에서 더 이상 작동하지 않습니까? (0) | 2020.05.16 |
AngularJS에서 컨트롤러를 다시로드하지 않고 경로를 변경할 수 있습니까? (0) | 2020.05.16 |