У меня есть следующий класс:DependencyObject обходит систему DependencyProperty?
public class ValueMarker : DependencyObject
{
public static readonly DependencyProperty BrushProperty = DependencyProperty.Register("Brush", typeof(Brush), typeof(ValueMarker), new FrameworkPropertyMetadata(Brushes.Aqua));
public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value", typeof(double), typeof(ValueMarker), new FrameworkPropertyMetadata(0d));
public static readonly DependencyProperty OffsetProperty = DependencyProperty.Register("Offset", typeof(double), typeof(ValueMarker), new FrameworkPropertyMetadata(0d));
public Brush Brush
{
get { return (Brush)GetValue(BrushProperty); }
set { SetValue(BrushProperty, value); }
}
public double Offset
{
get { return (double)GetValue(OffsetProperty); }
set { SetValue(OffsetProperty, value); }
}
public double Value
{
get { return (double)GetValue(ValueProperty); }
set { SetValue(ValueProperty, value); }
}
}
В XAML, я создаю массив ресурсов из них с некоторыми креплениями, как так:
<x:Array Type="my:ValueMarker" x:Key="plainMarks">
<my:ValueMarker Brush="Red" Offset="-5" Value="{Binding Path=...}" />
<my:ValueMarker Brush="Orange" Offset="-5" Value="{Binding Path=...}"/>
<my:ValueMarker Brush="Orange" Offset="-5" Value="{Binding Path=...}"/>
<my:ValueMarker Brush="Red" Offset="-5" Value="{Binding Path=...}" />
</x:Array>
При отладке привязок, я заметил, что должен Я удаляю setter для DP, XAML будет отображать ошибку, говорящую о том, что свойство отсутствует. Насколько я понимаю, XAML использует систему DP для назначения значения, что позволяет привязывать. В этом случае, если XAML ожидает «нормальное» свойство, привязка невозможна. Кто-нибудь может просветить меня, как я могу заставить его работать?
Что вы на самом деле спрашиваете? – meilke
В случае, если вопрос не очевиден, я спрашиваю, как сделать массив свойств объекта зависимостей связующим для последующего связывания в качестве статического ресурса. –