【发布时间】:2011-06-28 11:23:26
【问题描述】:
我对数据绑定和 XAML 还很陌生,所以这可能是相当简单的事情,但我已经被它难住了好几天(并且对谷歌搜索比我现在可以跟踪的更多感到沮丧)并且希望任何指向正确方向的指针。我唯一的偏好是尽可能将其保留在纯 XAML 中。
在我的 RIA SL4 项目中,我有两个实体 PackageOS 和 OS,其中 PackageOS 与 OS 到 PackageOS.OS 关联(通过 PackageOS.OSID 关联 OS.ID - 和 @ 987654328@ + .Include() 在相关部分正确设置)
这是我在 DataForm 中使用的模板(在 Page.Resource 部分以及所有其他涉及的 DDS 中定义)以获取 OSEntities 列表以绑定到 PackageOS 实体(来自 RIA GetOSEntities() 使用 DDS) :
<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>
核心问题是ComboBox 的SelectedItem 不起作用。所有绑定都可以从 IDE 绑定向导访问,因此我输入不正确的路径不是问题。我可以看到packageOSEntityDomainDataSource.Data.CurrentItem 的类型是PackageOS。
如果我在后端数据库中创建手动条目,结果会显示在 PackageOS.OS 文本块中,所以我知道它已正确返回但 SelectedItem 拒绝选择它(它最终选择下拉列表中的第一个值不管OS 中的PackageOS 中的项目)。
非常感谢!
【问题讨论】:
标签: silverlight xaml data-binding