回答:
A ListView
は基本的にaに似ていますListBox
(そしてそれから継承します)が、View
プロパティもあります。このプロパティを使用すると、アイテムを表示する定義済みの方法を指定できます。BCL(基本クラスライブラリ)で定義済みのビューは1つだけGridView
ですが、独自のビューを簡単に作成できます。
もう1つの違いは、デフォルトの選択モードです。これはのSingle
ためのものListBox
ですがExtended
、ListView
のListView
セットを定義して、definedを使用しての表示を制御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
。
リストビューはリストボックスコントロールから派生します。最も重要な違いの1つは、listviewがデフォルトで拡張選択モードを使用することです。listviewには、viewという名前のプロパティも追加されます。これにより、カスタムアイテムパネルよりも豊富な方法でビューをカスタマイズできます。gridviewを使用したlistviewの実際の例の1つは、ファイルエクスプローラーの詳細ビューです。グリッドビュー付きのリストビューは、それほど強力ではないデータグリッドです。データグリッドコントロールの導入後、リストビューの重要性は失われました。