在XAML中从索引器设置组合框的ItemsSource?

在XAML中从索引器设置组合框的ItemsSource?,xaml,silverlight-3.0,binding,Xaml,Silverlight 3.0,Binding,我有一个缓存,它根据传递给缓存的字符串(集合名称)检索集合(即…GlobalCache.Instance[“States”]) 我添加了一个资源,如下所示: 然后控制 <dataControls:DataFormComboBoxField x:Name="cmbStates" ItemsSource="GlobalCache.Instance['States']" DisplayMemberPath="EnumerationValueDisplayed" Bind

我有一个缓存,它根据传递给缓存的字符串(集合名称)检索集合(即…GlobalCache.Instance[“States”])

我添加了一个资源,如下所示:

然后控制

<dataControls:DataFormComboBoxField x:Name="cmbStates"
    ItemsSource="GlobalCache.Instance['States']"
    DisplayMemberPath="EnumerationValueDisplayed"
    Binding="{Binding fldState, Mode=TwoWay,Converter={StaticResource numConverterUsingEnumerationId},ConverterParameter='States'}" />

关于如何通过XAML实现这一点,而不必通过codebehind设置ItemsSource,有什么想法吗


通过代码隐藏,它可以很好地工作,但我想进一步简化编码…

我发现的一个解决方案是使用另一个转换器,并将参数作为ConverterParameter传递给索引器,如下所示:

。。。。 Binding=“{Binding Converter={StaticResource CacheIndexConverter},ConverterParameter=States}”

注意:我发现的另一个问题是ItemsSource没有通过XAML公开,因此如果不写入扩展程序或子类化,就无法访问它。

这应该可以:

ItemsSource="{Binding Source={StaticResource GlobalCache}, Path=Instance[States]}"
ItemsSource="{Binding Source={StaticResource GlobalCache}, Path=Instance[States]}"