绑定到CollectionViewSource返回DependencyProperty.UnsetValue

时间:2014-01-06 14:16:04

标签: c# wpf xaml binding

我需要检查一个项目是否被一个集合的成员使用。

当我直接绑定到集合(绑定2)时,可以正常工作但不通过它的视图(绑定3),它返回DependencyProperty.UnsetValue

为什么不起作用?

<ListBox.ItemTemplate>
    <DataTemplate DataType="system:String">
        <StackPanel Orientation="Horizontal">
            <CheckBox>
                <CheckBox.IsChecked>
                    <MultiBinding Converter="{StaticResource AssetToBooleanConverter}" Mode="OneWay"  >
                        <Binding />
                        <Binding Path="Assets" Source="{StaticResource Singleton}" />
                        <Binding Source="{StaticResource CvsAssets}" />
                    </MultiBinding>
                </CheckBox.IsChecked>
            </CheckBox>
            <TextBlock
                Text="{Binding Converter={StaticResource PathToNameConverter}}"
                ToolTip="{Binding Converter={StaticResource PathToSizeConverter}}" />
        </StackPanel>
    </DataTemplate>
</ListBox.ItemTemplate>

以下是该集合的视图:

<CollectionViewSource x:Key="CvsAssets"
                        IsLiveSortingRequested="True"
                        Source="{Binding Source={StaticResource Singleton},
                                        Path=Assets}"
                        d:IsDataSource="True">
    <CollectionViewSource.GroupDescriptions>
        <PropertyGroupDescription Converter="{StaticResource ObjectToTypeNameConverter}" />
    </CollectionViewSource.GroupDescriptions>
    <CollectionViewSource.SortDescriptions>
        <componentModel:SortDescription PropertyName="Name" />
    </CollectionViewSource.SortDescriptions>
</CollectionViewSource>

1 个答案:

答案 0 :(得分:0)

我刚刚使用以下语法修复它:

<Binding Source="{StaticResource CvsAssets}" Path="(CollectionView.SourceCollection)" />

(调试器发出关于绑定和类型的警告ListCollectionView