Visual studio 2010 silverlight Ria服务中的组合框绑定
我想通过域服务将combox与我的实体模型绑定 我的实体模型: 国家(ID、名称) 表2测试(主键字段、字段2、国家ID) 我创建了实体模型和域服务 我的Xaml:Visual studio 2010 silverlight Ria服务中的组合框绑定,visual-studio-2010,silverlight,combobox,wcf-ria-services,Visual Studio 2010,Silverlight,Combobox,Wcf Ria Services,我想通过域服务将combox与我的实体模型绑定 我的实体模型: 国家(ID、名称) 表2测试(主键字段、字段2、国家ID) 我创建了实体模型和域服务 我的Xaml: <riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:COUNTRIES, CreateList=true}" Height="0" Name="COUNTRIESDomainDataSource" QueryN
<riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:COUNTRIES, CreateList=true}" Height="0" Name="COUNTRIESDomainDataSource" QueryName="GetCOUNTRIESQuery" Width="0">
<riaControls:DomainDataSource.DomainContext>
<my:DomainService1 />
</riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>
<riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:TABLE_TEST, CreateList=true}" Height="0" Name="TABLE_TESTDomainDataSource" QueryName="GetTABLE_TESTQuery" Width="0">
<riaControls:DomainDataSource.DomainContext>
<my:DomainService1 />
</riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>
<ComboBox Name="COUNTRIESComboBox"
DataContext="{Binding ElementName=COUNTRIESDomainDataSource, Path=Data}" ItemsSource="{Binding}"
DisplayMemberPath="ID"
SelectedValuePath="NAME"
SelectedValue="{Binding ElementName=TABLE_TESTDomainDataSource, Path=COUNTRY_ID}">
</ComboBox>
组合框加载了正确的值(所有国家/地区),但看起来它没有与表\u TEST绑定。当我更改表_TEST的寄存器时,组合的值不会更改
我做错了什么?我看了很多例子,但没有一个是相同的Escnario,具有域数据源和实体模型
我和silverlight 5一起工作
谢谢DomainDataSource非常不适合作为Silverlight组合框的数据源。到目前为止,我在您描述的用例中找到了最可靠的。事实上,他建议: 1) 不要使用DomainDataSource填充组合框 你可以 我认为这是激烈的或过度的反应,但我坚持这个原则 正式建议尽管你会在其他地方看到一些简单的样本, 我认为你最好在使用DDS时避免使用DDS 组合框。对于更复杂的组合框,DDS不可缩放 情景 特别是,您需要在final属性中将组合框标记为异步
<ComboBox Name="COUNTRIESComboBox"
DataContext="{Binding ElementName=COUNTRIESDomainDataSource, Path=Data}" ItemsSource="{Binding}"
DisplayMemberPath="ID"
SelectedValuePath="NAME"
SelectedValue="{Binding ElementName=TABLE_TESTDomainDataSource, Path=COUNTRY_ID}"
ex:ComboBox.Mode="Async">
</ComboBox>
此示例不适用于我。好的,他描述了同样的情况,但是他使用了一个我不想要的个性化组合框。如果不实现我自己的组合框扩展,我无法相信silverlight无法解决这个问题……它是一个标准的组合框。出现问题的主要原因是DomainDataSource是异步的,可能会在设置SelectedValue后完成ItemsSource的加载。最终结果是您将丢失所选的值。如果不想使用扩展,请确保先加载itemssource,然后设置selectedvalue。这就是分机的作用。顺便说一下,我完全同意你的看法。Silverlight的级别太低,需要经过多年的打磨或第三方工具包才能使其对快速LOB开发有用。您知道如何从DomainDataSource对象设置de-SelectedValue属性吗?如果您坚持使用DomainDataSource,然后,在加载表\u TESTDomainDataSource DDS之前,必须确保已加载的COUNTRIESDomainDataSource。将“自动加载”设置为false,然后侦听事件。这是一个很大的工作,大约每半页的时间,并很难遵循。