Silverlight: загрузка элементов управления на основе выбора радиокнопки - PullRequest
0 голосов
/ 25 января 2010

Я работаю в SL версии 2.0

У меня есть 3 переключателя в группе и 3 пользовательских элемента управления, которые я хочу загрузить в зависимости от выбора переключателя. Как это может быть сделано? Какие варианты у меня есть?

Я думал о добавлении пользовательских элементов управления в тот же файл xaml, что и переключатели, и сделать их все невидимыми. Затем на код позади в зависимости от выбора переключателей сделать их видимыми.

Это единственное решение или есть более эффективный способ сделать это?

Заранее спасибо.

Ответы [ 4 ]

0 голосов
/ 29 января 2010

Другим вариантом будет динамическая загрузка XAML для элементов управления с использованием XamlReader.Load () - вы можете привести полученный объект к FrameworkElement и добавить его в дерево элементов управления.

XamlReader. Сведения о загрузке: http://msdn.microsoft.com/en-us/library/cc190359%28VS.95%29.aspx

0 голосов
/ 25 января 2010

Самый простой способ сделать это - использовать TabControl, поместить ваши UserControls в TabItems и изменить стиль TabItem.Header, чтобы вместо него отображался RadioButton. Это позаботится о том, чтобы показать и скрыть, не испортив ваш код, вручную установив свойства видимости везде

0 голосов
/ 29 января 2010

Простой способ, о котором я могу подумать, это иметь заполнитель, в который вы хотите загрузить элемент управления (например, StackPanel), и всякий раз, когда выбирается переключатель, очищайте StackPanel.Children и добавляйте новый экземпляр нового UserControl.

0 голосов
/ 25 января 2010

В зависимости от размера и сложности этих элементов управления ваше решение может быть разумным.

Существуют и другие методы, включая динамическую загрузку модулей. Это добавляет значительную сложность. Prism - главный проект для этого в Silverlight, его можно найти по адресу http://compositewpf.codeplex.com/.

10 вещей, которые нужно знать о Prism: http://www.sparklingclient.com/prism-silverlight/
Подкаст на вступлении к Призмы: http://www.sparklingclient.com/prism-in-silverlight/

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