Если вы когда-нибудь получали сообщение об ошибке с текстом:
A 'Binding' cannot be set on the 'Geometry' property of type 'ConnectionByLine'. A 'Binding' can only be set on a DependencyProperty of a DependencyObject.
То уже знаете, что решение проблемы элементарно до безобразия, хотя некоторые, такие как я, всё же упускают детали.
Чаще всего это возникает, когда название свойства (в примере - Geometry) не соответствует регистрируемому свойству: DependencyProperty.Register("Geometry", ...);
Обычно DependencyProperty имеет следующий вид:
public static readonly DependencyProperty GeometryProperty = DependencyProperty.Register("Geometry", typeof(PathGeometry), typeof(BaseShape));
public PathGeometry Geometry
{
get { return (PathGeometry)GetValue(GeometryProperty); }
set { SetValue(GeometryProperty, value); }
}
После этого можно производить привязку к данному свойству следующим образом в XAML-коде:
...
Label
Content="{Binding ElementName=MyLine, Path=Geometry}"
...
Но помните, если вы примените какое-нибудь послабление в именовании свойств, то получите ошибку с сообщением о том, что привязку можно производить только на зависимые свойства.
Читать дальше......
понедельник, 6 июля 2009 г.
Подписаться на:
Сообщения (Atom)