填充数据形组合框与DomainDataSource
问题描述:
这里是我的布局:填充数据形组合框与DomainDataSource
<StackPanel>
<!-- Defining my DDS here wont allow my ComboBox inside the DataTemplate bind to the loaded items -->
<DomainDataSource x:Name="ddsValues" Query="MyQuery" DomainContext="{Binding DC}" />
<DataForm>
<DataForm.EditTemplate>
<DataTemplate>
<StackPanel>
<!-- Defining my DDS here works fine -->
<DomainDataSource x:Name="ddsValues" Query="MyQuery" DomainContext="{Binding DC}" />
<ComboBox ItemsSource="{Binding Data, ElementName=ddsValues}" />
</StackPanel>
</DataTemplate>
</DataForm.EditTemplate>
</DataForm>
</StackPanel>
谁能告诉我为什么我设置我的DomainDataSource这样?为什么它必须存在于DataTemplate中?有没有解决的办法?从技术上讲,这意味着每当我更改DataForm中的记录时,它必须从数据库中重新装载值。这些值是静态的,不会改变。
答
Deborah Kurata'sSilverlight and RIA: Adding a ComboBox to a DataForm后描述了如何通过使用静态资源来解决这个问题。我认为Dan Wahlin's Creating a Silverlight DataContext Proxy to Simplify Data Binding in Nested Controls后 更详细地描述了潜在的问题。
答
由于SL1,2,3的设计限制,在你已经引用的Dan Wahlin文章中有详细描述,你必须像这样设置你的DDS。在SL4中,基础问题在很大程度上得到了解决,并且大量的这种废话消失了。与此同时,您要么使用Wahlin的解决方案,要么耸耸肩,并希望能够与之共存,希望下一个版本能够改进(就像他们一样)。