में आइटम कैसे समूहबद्ध करूं मेरे पास ListView
है कि मैं परिणाम समूहबद्ध करना चाहता हूं, हालांकि मुझे जो उदाहरण मिल रहे हैं वे काम नहीं कर रहे हैं। मैं अपने परिणामों को कैसे समूहीकृत कर सकता हूं?मैं WPF ListView
मैं कस्टम ऑब्जेक्ट की Status
संपत्ति पर समूह बनाना चाहता हूं।
यह है कि मैं क्या है:
<ListView IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding}"
HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
Background="Transparent" SelectionChanged="ListView_SelectionChanged"
Name="lstShelvedOrders">
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock FontWeight="Bold" FontSize="15"
Text="{Binding Path=Status}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListView.GroupStyle>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Width" Value="Auto" />
<Setter Property="FontSize" Value="10.4" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Path=Number}" Header="Shelve ID" />
<GridViewColumn DisplayMemberBinding="{Binding Path=Customer}" Header="Customer" />
<GridViewColumn DisplayMemberBinding="{Binding Path=PurchaseOrderNo}" Header="PO Number" />
<GridViewColumn DisplayMemberBinding="{Binding Path=SubmittedBy}" Header="Shelved By" />
<GridViewColumn DisplayMemberBinding="{Binding Path=OrderDate, StringFormat=MMM dd\, yyyy}" Header="Date" />
<GridViewColumn DisplayMemberBinding="{Binding Path=CustomerTerms.Description}" Header="Order Terms" />
<GridViewColumn DisplayMemberBinding="{Binding Path=ShippingMethod.Description}" Header="Shipping" />
<GridViewColumn DisplayMemberBinding="{Binding Path=TotalPrice, StringFormat=c}" Header="Order Total" />
</GridView>
</ListView.View>
</ListView>
और यह कोड है कि मैं है:
void ShelvedOrderList_DataContextChanged(object sender, System.Windows.DependencyPropertyChangedEventArgs e)
{
AddGrouping();
}
private void AddGrouping()
{
if (lstShelvedOrders.ItemsSource == null)
{
return;
}
CollectionView myView = (CollectionView)CollectionViewSource.GetDefaultView(lstShelvedOrders.ItemsSource);
PropertyGroupDescription groupDescription = new PropertyGroupDescription("Status");
myView.GroupDescriptions.Add(groupDescription);
}
ठीक है, मैं अब समूह के तीन मामलों हो रही है अब, लेकिन इसका समूह इतना जीत है। आप यहां मेरा निजी नायक बनना चाहते हैं। – Russ
मैं इस कोड का उपयोग एमवीवीएम पर्यावरण में कैसे कर सकता हूं? कोई कोड कोड नहीं है जहां सूची आइटम सेट हैं। वे बाध्यकारी के माध्यम से उपयोग किया जाता है। मुझे कोई ऐसा ईवेंट नहीं मिल रहा है जिसे मैं AddGrouping() विधि को हुक कर सकता हूं। जब पूरे उपयोगकर्ता नियंत्रण का डेटाकॉन्टेक्स्ट बदल गया है, तो सूची का आइटमसोर्स अभी भी शून्य है। मुझे लगता है कि इसमें थोड़ी देर लगती है। – ygoe
आप उचित समूह के साथ XAML में एक [संग्रह दृश्य दृश्य] (http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.aspx) बना सकते हैं, और इसके बजाय अपने नियंत्रण को बाध्य कर सकते हैं सीधे स्रोत संग्रह। –