我对数据绑定& XAML相当陌生,所以这可能是相当简单的事情,但我一直忍受它好几天了(和更多的谷歌搜索比我可以跟踪在这一点上感到沮丧),并会赞赏任何指向正确的方向。如果可能,我唯一的选择是保持纯XAML。Cross DomainDataSource Combobox SelectedItem Binding
在我RIA SL4的项目,我有两个实体PackageOS
和OS
其中PackageOS
具有通过PackageOS.OS
的关联OS
(通过PackageOS.OSID
<关联 - >OS.ID
- 和[Include]
+ .Include()
正确安装在相关章节)
这是模板(在Page.Resource
节中定义,以及所有其他涉及的DDS)我在DataForm中使用OSEntities
列表绑定到PackageOS
实体(来自使用DDS的RIA GetOSEntities()
):
<DataTemplate x:Key="POSItemTemplate">
<StackPanel>
<toolkit:DataField Label="PackageOS.OS">
<TextBlock Text="{Binding Source={StaticResource packageOSEntityDomainDataSource}, Path=Data.CurrentItem.OS}" />
</toolkit:DataField>
<toolkit:DataField Label="OS">
<ComboBox ItemsSource="{Binding Path=Data, Source={StaticResource osEntityDomainDataSource}}"
SelectedItem="{Binding Path=Data.CurrentItem.OS, Source={StaticResource packageOSEntityDomainDataSource}}"/>
</toolkit:DataField>
</StackPanel>
</DataTemplate>
核心问题是SelectedItem
的ComboBox
不起作用。所有的绑定都可以从IDE绑定向导中获得,所以这不是我输入错误路径的问题。我可以看到packageOSEntityDomainDataSource.Data.CurrentItem
的类型为PackageOS
。
如果我创建的后端数据库手动输入,结果显示在PackageOS.OS
文本块,所以我知道正确返回,但SelectedItem
拒绝把它捡起来(它最终选择在下拉列表中的第一个值,而不管OS
物品在PackageOS
)。
非常感谢提前!