c# .net wpf collectionviewsource

c# - Pregunta de uso de CollectionViewSource



.net wpf (1)

Estoy tratando de hacer un uso básico de CollectionViewSource y debo faltar algo porque simplemente no funciona. Aquí está mi XAML:

<Window.Resources> <CollectionViewSource Source="{Binding loc:MainVM.Instance.MapItems}" x:Key="MapCV"> <CollectionViewSource.GroupDescriptions> <PropertyGroupDescription PropertyName="SourceProject" /> </CollectionViewSource.GroupDescriptions> </CollectionViewSource> </Window.Resources>

<ListBox ItemsSource="{StaticResource MapCV}" HorizontalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> <ListBox.ItemTemplate> <DataTemplate> <Grid HorizontalAlignment="Stretch"> <Grid.ColumnDefinitions> <ColumnDefinition Width="2*"/> <ColumnDefinition Width="2*"/> <ColumnDefinition Width="50"/> </Grid.ColumnDefinitions> <TextBlock Grid.Column="0" Text="{Binding SourceType, Converter={StaticResource WorkItemTypeToStringConverter}}"/> <ComboBox Grid.Column="1" SelectedItem="{Binding DestType}" ItemsSource="{Binding WorkItemTypesForCurrentDestProject, Source={x:Static loc:MainMediator.Instance}, diagnostics:PresentationTraceSources.TraceLevel=High}" DisplayMemberPath="Name" /> <Button Grid.Column="2" Content="{Binding PercentMapped}"/> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox>

Esto se compila bien, pero cuando ejecuto la aplicación me sale este error:

Cannot convert the value in attribute ''ItemsSource'' to object of type ''System.Collections.IEnumerable''. ''System.Windows.Data.CollectionViewSource'' is not a valid value for property ''ItemsSource''. Error at object ''System.Windows.Controls.ListBox'' in markup file ''WIAssistant;component/main.xaml

Esta es la colección que estoy adjuntando a:

// The mappings used to copy the values of the fields of one WorkItem to another. public ObservableCollection<WorkItemTypeMapping> WorkItemTypeMappings { get { return (ObservableCollection<WorkItemTypeMapping>) GetValue(WorkItemTypeMappingsProperty); } set { SetValue(WorkItemTypeMappingsProperty, value); } } public static readonly DependencyProperty WorkItemTypeMappingsProperty = DependencyProperty.Register("WorkItemTypeMappings", typeof(ObservableCollection<WorkItemTypeMapping>), typeof(MainMediator), new UIPropertyMetadata(null));

Solo quiero hacer una agrupación simple en el objeto Project SourceProject . Preferiría no tener que romper una vista de árbol para esto.


Esto debería funcionar para usted

<ListBox ItemsSource="{Binding Source={StaticResource MapCV}}" ...