在XAML中从索引器设置组合框的ItemsSource?
我有一个缓存,它根据传递给缓存的字符串(集合名称)检索集合(即…GlobalCache.Instance[“States”]) 我添加了一个资源,如下所示:在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
<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]}"