IT

ListBox와 ListView의 차이점은 무엇입니까

lottoking 2020. 5. 16. 10:25
반응형

ListBox와 ListView의 차이점은 무엇입니까


WPF의 ListBox와 ListView의 차이점은 무엇입니까? 나는 그들의 속성에서 큰 차이를 찾을 수 없습니다. 다른 일반적인 용도가 있습니까?


A ListView는 기본적으로 a ListBox비슷 하지만 그로부터 상속받습니다 View. 이 속성을 사용하면 미리 정의 된 항목 표시 방법을 지정할 수 있습니다. BCL ( 기본 클래스 라이브러리 ) 에서 사전 정의 된 유일한보기는 자신 만의보기를GridView 쉽게 만들 수 있습니다 .

또 다른 차이점은 기본 선택 모드입니다 : 그것은 SingleA에 대한 ListBox,하지만 ExtendedA에 대한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

Normal

MouseOver보기 : 위의보기 1 XAML

Mouse Over

에서 위의 목표를 달성하려고하면 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

반응형