|
DataBinding без извращений
|
|||
---|---|---|---|
#18+
День добрый. Задумался, как без извращений сделать DataBinding Между DataGrid-ами и DataSet-ом, генерированном с помощью XSD? DataSet coreDataBase я получаю из веб-сервиса: Код: c# 1. 2. 3. 4.
В форме приводится следующий биндинг: Код: c# 1. 2. 3. 4. 5.
Далее гриды крепятся к ресурсам: Код: c# 1.
А вот затем начинаются танцы с бубном: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Вопроса 2: 1. Как реализовать изменение ItemsSource у DataGrid без его переопределения (только ObservableCollection?); 2. Если все же без этого не обойтись, то как при минимуме телодвижений сохранить связь отображаемых таблиц? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2012, 12:01 |
|
DataBinding без извращений
|
|||
---|---|---|---|
#18+
hex.style1. Как реализовать изменение ItemsSource у DataGrid без его переопределения (только ObservableCollection?); Код: c# 1. 2.
ЗЫ. Лучше ObservableCollection. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2012, 12:11 |
|
DataBinding без извращений
|
|||
---|---|---|---|
#18+
Если через ObservableCollection, то мне нужно свой адаптер писать, а суть в том, чтобы использовать стандартный, ведь отчетов будет воз и маленькая тележка! Этот еще очень простенький. Если абстрагироваться от данного примера, то при перезагрузке значений DataSet все привязки летят к Ебени матери. Отсюда необходимость первого костыля. Ну хрен бы с ним. Кода немного и он прост как варежка. Но все же затык со второй проблемой с полпинка мне решить так и не удалось. Как задать this.fK_InterfaceGroups_ModulesExtendedDataGrid.ItemsSource = Relation ??? Может кто знает? Стандартная ведь тема должна быть. А гугл молчит. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2012, 13:32 |
|
DataBinding без извращений
|
|||
---|---|---|---|
#18+
Чуток перефразирую. Как подобный код в XAML: Код: c# 1. 2. 3.
написать на C#? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2012, 15:23 |
|
DataBinding без извращений
|
|||
---|---|---|---|
#18+
hex.styleЧуток перефразирую. Как подобный код в XAML: Код: c# 1. 2. 3.
написать на C#? Тут ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2012, 15:48 |
|
DataBinding без извращений
|
|||
---|---|---|---|
#18+
Алексей К, воот, спасибо! Полезная ссылка. Теперь пришел к виду: this.Resources["modulesViewSource"] = CollectionViewSource.GetDefaultView(this.coreDataBase.Modules); Что скорее всего равносильно: <CollectionViewSource x:Key="modulesViewSource" Source="{Binding Path=Modules, Source={StaticResource coreDataBase}}" /> Но это полдела. Меня вводит в недоумение следующее: <CollectionViewSource x:Key="modulesInterfaceGroupsViewSource" Source="{Binding Path=FK_InterfaceGroups_Modules, Source={StaticResource modulesViewSource}}" /> Тут мы биндимся к предыдущей коллекции modulesViewSource и каким-то образом находим ее связь с внешним ключом по мистическому адресу FK_InterfaceGroups_Modules. Уличная магия, чесслово. Вопрос открыт. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2012, 16:27 |
|
DataBinding без извращений
|
|||
---|---|---|---|
#18+
hex.styleНо это полдела. Меня вводит в недоумение следующее: <CollectionViewSource x:Key="modulesInterfaceGroupsViewSource" Source="{Binding Path=FK_InterfaceGroups_Modules, Source={StaticResource modulesViewSource}}" /> Тут мы биндимся к предыдущей коллекции modulesViewSource и каким-то образом находим ее связь с внешним ключом по мистическому адресу FK_InterfaceGroups_Modules. Уличная магия, чесслово. Вопрос открыт.Эти чудеса описаны в мануалах по DataSet, если я правильно понял вопрос. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2012, 18:24 |
|
DataBinding без извращений
|
|||
---|---|---|---|
#18+
Алексей К, К сожалению, в доках ничего по этому поводу нет. В примерах видел только как задается подобный параметр в XAML. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2012, 21:22 |
|
DataBinding без извращений
|
|||
---|---|---|---|
#18+
Пробую через ChildRelations, привязка все равно не сохраняется: Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2012, 21:32 |
|
DataBinding без извращений
|
|||
---|---|---|---|
#18+
hex.styleТут мы биндимся к предыдущей коллекции modulesViewSource и каким-то образом находим ее связь с внешним ключом по мистическому адресу FK_InterfaceGroups_Modules. Уличная магия, чесслово.1/ Если DataGrid с Master таблицей мышью кидаешь на окно с параметром "генерировать колонки по умолчанию", то кроме всех полей будет (одна или несколько) колонок с foreign key. Значит DataSet знает об этом, значит магии нет. 2/ Чем не устраивает Master-Detail сценарий, генерируемый студией по умолчанию для DataSet? 3/ Вообще не понял в чём суть проблемы. Что не работает? На всякий случай, если надо иметь доступ к ресурсам и из XAML для байндинга и из кода для хороших дел, то: - объявляю их в XAML (типа <CollectionViewSource x:Key="modulesInterfaceGroupsReportsViewSource"/> создаст пустую коллекцию как new CollectionViewSource(); ) - в коде цепляю через ссылку, как в примере (пункт 2) через FindResourse - сами значения ресурса, если не прибайндены в XAML, тогда заливаются в коллекцию в коде. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2012, 20:41 |
|
DataBinding без извращений
|
|||
---|---|---|---|
#18+
Old_Fat_CatЗначит DataSet знает об этом Тут никто не спорит, более того, эти привязки даже можно увидеть в самой структуре. Old_Fat_Catзначит магии нет. Имею ввиду "магию" XAML. Попробуй, к примеру, записать через код вот это: Код: c# 1.
Old_Fat_Cat2/ Чем не устраивает Master-Detail сценарий, генерируемый студией по умолчанию для DataSet? Да полностью устраивает! Более того, я именно его и хочу использовать. Как видно из кода, я изначально гружу DataSet, у меня переход по существующему DataSet работает отличненько! Однако при попытке подгрузить данные в существующий DataSet я сталкиваюсь с тем, что слетают байдинги в XAML и у меня не получается их восстановить. Old_Fat_Cat- объявляю их в XAML (типа <CollectionViewSource x:Key="modulesInterfaceGroupsReportsViewSource"/> создаст пустую коллекцию как new CollectionViewSource(); ) - в коде цепляю через ссылку, как в примере (пункт 2) через FindResourse В общем, как и я. Old_Fat_Cat- сами значения ресурса, если не прибайндены в XAML, тогда заливаются в коллекцию в коде. Значения прибайндены. Но если ты мне покажешь на моем примере, как этот пункт реализовать без великих танцев с бубном и губной гармошкой и чтобы при этом не слетали байндинги, буду тысячу раз тебе благодарен. Если реально поможешь, с меня пиво! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2012, 20:00 |
|
|
start [/forum/topic.php?fid=21&msg=37920957&tid=1441695]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 309ms |
total: | 432ms |
0 / 0 |