我需要检查一个项目是否被一个集合的成员使用。
当我直接绑定到集合(绑定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>
答案 0 :(得分:0)
我刚刚使用以下语法修复它:
<Binding Source="{StaticResource CvsAssets}" Path="(CollectionView.SourceCollection)" />
(调试器发出关于绑定和类型的警告ListCollectionView
)