1

私はItemsControlそのように定義しました:

<ItemsControl Grid.Row="2" Style="{StaticResource SellingDashboardToDosList}"
              BorderThickness="1" Background="#C7E8F8" HorizontalAlignment="Stretch" 
              ItemsSource="{Binding Path=ToDoList}">
    <ItemsControl.GroupStyle>
        <GroupStyle>
            <GroupStyle.ContainerStyle>
                <Style TargetType="GroupItem">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="GroupItem">
                                <GroupBox Header="{Binding Path=Model.TodoType}" >
                                    <ItemsPresenter />
                                </GroupBox>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </GroupStyle.ContainerStyle>
        </GroupStyle>
    </ItemsControl.GroupStyle>
</ItemsControl>

ItemsSourceありSynchronisedObservableCollection<T>ますViewModel。ただし、このXAMLはグループ化を生成しません。どういうわけかグループ化できるものを指定する必要があるItemsSourceと思います。しかし、どこで指定すればよいですか?

XmlDataProvider静的データでを使用する場合はCollectionViewSource、次の例のような要素で使用できます。http: //cromwellhaus.com/2010/03/grouping-is-crazy-easy-in-wpf/アーカイブ済み) 。

私はそのようにそれをやろうとしました:

<CollectionViewSource x:Key="CollectionViewSource1" Source="{Binding Path=ToDoList}">
    <CollectionViewSource.GroupDescriptions>
        <PropertyGroupDescription PropertyName="TodoType"/>
    </CollectionViewSource.GroupDescriptions>
</CollectionViewSource>

しかし、実行時のバインディングエラーが発生します。

BindingExpressionによって生成された値は、ターゲットプロパティに対して無効です。; Value ='System.Windows.Data.ListCollectionView' BindingExpression:Path = ToDoList; DataItem ='ToDosViewModel'(HashCode = 40956219); ターゲット要素は'CollectionViewSource'(HashCode = 51380674); ターゲットプロパティは「ソース」(タイプ「オブジェクト」)です。

4

2 に答える 2

1

しかし、ItemsSourceのタイプが無効であるというランタイムバインディングエラーが発生します。

正しく参照しましたか?次のように指定する必要がありますBinding.Source

ItemsSource="{Binding Source={StaticResource CollectionViewSource1}}"
于 2012-07-13T17:32:01.780 に答える
0

XAMLのCollectionViewSourceの代わりにC#のListCollectionViewを使用しました。

于 2012-07-16T09:28:21.340 に答える