WPF - как привязать к источнику на другой странице? - PullRequest
1 голос
/ 15 декабря 2010

Может ли кто-нибудь ответить на действительно расстраивающий вопрос новичка, пожалуйста ?!Я искал ответ в течение нескольких дней и нашел ответы на подобные вопросы, но ничего, что точно решает мою проблему.

Я пытаюсь привязать текстовое поле к выбранному в данный момент элементу вlistview (который сам связан с Observablecollection объектов, не уверен, что это имеет значение).

Listview находится в RecentEntities.xaml, а текстовое поле находится в Relationship.xaml, оба из которых расположены в главном окнеизнутри Maincontrol.xaml.Таким образом, они находятся в одном и том же пространстве имен, но находятся на разных страницах, поэтому использование ElementName не работает, поскольку кажется, что это выглядит на текущей странице.

Проблема, с которой я сталкиваюсь, заключается в попытке определитьисточник привязки текстового поля в Relationship.xaml, как я могу ссылаться на выбранный элемент списка в RecentEntities.xaml?Я задавался вопросом об использовании RelativeSource, но, похоже, это позволяет вам перемещаться вверх по дереву до предка текущего элемента управления.Из-за того, как настроен MainControl, мне нужно перейти к родительскому элементу текстового поля, затем к родному брату родительского элемента, а затем к дочернему элементу его дочернего элемента, чтобы перейти к представлению списка!

Я изучил (возможно, недостаточно подробно) другие варианты, такие как ресурсы, контекст данных, включая заголовочные файлы, и кое-что прочитал о словарях объединенных ресурсов, но, если честно, чем больше возможностей я исследую, тем больше я запуталсяя понимаю, что мне нужно делать.

Это действительно так сложно, как кажется ?!Любые указатели или помощь будут великолепны, спасибо, что нашли время ответить :) Я не публиковал здесь раньше, поэтому, если вам нужны какие-либо фрагменты кода, пожалуйста, дайте мне знать.

Ответы [ 2 ]

2 голосов
/ 15 декабря 2010

Можете ли вы создать модель представления, которую будут использовать оба представления?Сделайте так, чтобы выбранный элемент в вашем списке был привязан к свойству в ViewModel, а текстовое поле - к тому же свойству.Пока оба представления ссылаются на один и тот же экземпляр модели представления, оно должно работать.

0 голосов
/ 15 декабря 2010

С двумя файлами XAML вам придется использовать модель или модель представления (в зависимости от вашего выбора архитектуры) для синхронизации.

Для просмотра списка вы можете использовать SelectedValue для привязки к свойству, используйте Mode=OneWayToSource для этой привязки, поскольку вы просто хотите обновить свойство, а не изменять выбор в самом списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...