| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > Проблема с биндингом |
| Автор: dazy 22.12.2009, 11:47 | ||
Сделал cuctom control, в шаблоне определяю связь разных свойств контрола с его внутренностями:
Fill="{TemplateBinding Background}" - срабатывает хорошо и ни каких нареканий нет. А вот StrokeThickness="{TemplateBinding BorderThickness.Left}" не хочет связываться. VS выдает "Type BorderThickness was not fownd" Если биндить так StrokeThickness="{TemplateBinding BorderThickness}" (без .Left), то все компилируется, но естественно не работает должным образом, потому как BorderThickness это структура, а StrokeThickness это double. Если делаю свое DP типа double, то вообще вываливается какая-то страшная ошибка, причем, только в Expression Blend, в VS все компилится, приложение не запускается. Делаю, DP типа Color, ну так, ради проверки, может я не правильно делаю DP, все в порядке. Но DP c double, float запускаться не хочет, хотя в VS ошибок компиляции нет. В чем может быть проблема? |
| Автор: dazy 22.12.2009, 16:32 | ||
Проблему DP победили:
Оказывается, у меня PropertyMetadata была такого вида PropertyMetadata(0)); этот 0 воспринимается компилятором как int, чтобы число имело тип float, нужно явно указать тип (Double)0, или писать его в формате 0.0 На BorderThickness.Left плюнул, забиндил Path. StrokeThickness на успешно созданное StrokeThickness. |