जवाबों:
ए ListView
मूल रूप से एक ListBox
(और इससे विरासत में मिला) की तरह है, लेकिन इसमें एक View
संपत्ति भी है । यह संपत्ति आपको आइटम प्रदर्शित करने के पूर्वनिर्धारित तरीके को निर्दिष्ट करने की अनुमति देती है। बीसीएल ( बेस क्लास लाइब्रेरी ) में एकमात्र पूर्वनिर्धारित दृश्य है GridView
, लेकिन आप आसानी से अपना खुद का बना सकते हैं ।
एक अन्य अंतर डिफ़ॉल्ट चयन मोड है: यह Single
ए के लिए है ListBox
, लेकिन Extended
ए के लिएListView
एक 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
माउसओवर दृश्य: ऊपर 1 देखें XAML
यदि आप एक में ऊपर प्राप्त करने की कोशिश करते हैं
ListBox
, तो शायद आपControlTempalate
/ItemTemplate
के लिए बहुत अधिक कोड लिखना समाप्त कर देंगेListBox
।
सूची सूची नियंत्रण से प्राप्त होती है। एक सबसे महत्वपूर्ण अंतर है लिस्टव्यू डिफ़ॉल्ट रूप से विस्तारित चयन मोड का उपयोग करता है। listview में एक संपत्ति भी देखी जाती है जिसे दृश्य कहा जाता है जो आपको कस्टम आइटम पैन की तुलना में अधिक समृद्ध तरीके से दृश्य को अनुकूलित करने में सक्षम बनाता है। ग्रिडव्यू के साथ सूची का एक वास्तविक जीवन उदाहरण फ़ाइल एक्सप्लोरर का विवरण है। ग्रिड दृश्य के साथ सूची एक कम शक्तिशाली डेटा ग्रिड है। डेटाग्रिड नियंत्रण सूची के आने के बाद अपना महत्व खो दिया।