Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с биндингом, SL, custom control 
V
    Опции темы
dazy
Дата 22.12.2009, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 15.9.2006

Репутация: 3
Всего: 8



Сделал cuctom control,  в шаблоне определяю связь разных свойств контрола с его внутренностями:

Код

 <Path x:Name="CorePart"
    Fill="{TemplateBinding Background}"
    StrokeThickness="{TemplateBinding BorderThickness.Left}"/>


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 ошибок компиляции нет. 

В чем может быть проблема?

PM MAIL   Вверх
dazy
Дата 22.12.2009, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 15.9.2006

Репутация: 3
Всего: 8



Проблему DP победили:

Код

        public static readonly DependencyProperty StrokeThicknessProperty =
            DependencyProperty.Register("StrokeThickness", typeof(Double), typeof(HandPart),
              new PropertyMetadata((Double)0));


Оказывается, у меня PropertyMetadata была такого вида PropertyMetadata(0)); этот 0 воспринимается компилятором как int, чтобы число имело тип float, нужно явно указать тип (Double)0, или писать его в формате 0.0


На BorderThickness.Left плюнул, забиндил Path. StrokeThickness на успешно созданное StrokeThickness.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0370 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.