| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > Binding элементов внутри коллекции |
| Автор: lennyomg 29.10.2010, 10:22 | ||||||||
| Есть собственный UserControl, в нем есть список "неких параметров", который (список) может заполняться из XAML и есть класс, описывающий "некие параметры". UserControl находится на WPF форме. Как сбиндить элементы внутри списка параметров в UserControl со свойства окна WPF (т.е. для каждого элемента своё свойсто). Код ЮзерКонтрола
Код класса параметров. В ArrayList будут именно экземпляры этого класса.
Разметка формы
Ну и код формы
Может кто знает чего не хватает. Заранее спасибо |
| Автор: Kaerus 2.11.2010, 22:38 | ||
Проблема здесь
К сожалению что бы биндинг здесь сработал - класс Parameter должен быть унаследован минимум от FrameworkElement, потому что биндинг без указания источника использует свойство DataContex для поиска источника вверх по визуальному дереву. А это значит что DataContext могут использовать только контролы и их свойства. |
| Автор: lennyomg 2.11.2010, 23:07 | ||||
| спасибо за ответ попробовал переписать наследование вот так
но к сожалению ничего не изменилось затем вчитался в ответ снова и попробовал следующее: напрямую задал значение датаконтексту параметра (до этого там был null) получилось что то вроде этого (код на форме)
а теперь вопрос... как сделать так, что бы датаконтекст автоматически брался от родителя хотя-бы в каком направлении копать заранее спасибо |
| Автор: Kaerus 3.11.2010, 00:25 | ||
| 1) Не надо забывать что FrameworkElement является базовым классом для контролов, а не для произвольных dependecy классов (к примеру у него есть свойства Width и Height) 2) DataContex работает только для элементов визуального дерева, то что ты добавил элемент типа FrameworkElement в список не делает его дочерним элементом Возмножно стоит сделать класс ParameterStorage на основе ItemsControl и добавлять Parameter уже как дочерние элементы
|