Я хочу связать combox с моей моделью сущностей через службы домена.Переплет Combobox в silverlight Ria Services
Моя сущность модель: СТРАН (ID, NAME) TABLE_TEST (PK_FIELD, FIELD2, COUNTRY_ID)
Я создал модель лица и службу домена.
Мои Xaml:
<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>
Поле со списком загружается с правильными значениями (все страны), но похоже, что это не ограничена TABLE_TEST. Когда я меняю регистр TABLE_TEST, значение комбо не изменяется.
Что я делаю неправильно? Я посмотрел много примеров, но никто не является тем же самым escenario, с источником данных домена и сущностью.
Я работаю с Silverlight 5
Благодарности
Этот пример не относится ко мне. Хорошо, он описывает ту же ситуацию, но он использует персонализированный combobox, который я не хочу. Я не могу поверить, что Silverlight не имеет решения этой проблемы без реализации моего собственного расширения combobox ... – nachovall
Это стандартная combobox. Основная причина, по которой возникают проблемы, заключается в том, что DomainDataSource является асинхронным и может завершить загрузку ItemsSource после того, как выбран параметр SelectedValue. В результате вы теряете свой SelectedValue. Если вы не хотите использовать расширения, убедитесь, что сначала загружен источник itemss, а затем установите выбранное значение. Это то, что делает расширение. –
Кстати, я полностью согласен с вашими чувствами. Silverlight - слишком низкий уровень, и ему нужны годы полировки или инструментарий для сторонних разработчиков, чтобы сделать его полезным для быстрой разработки LOB. –