後で静的リソースとしてバインドするために、依存オブジェクト プロパティの配列をバインド可能にする方法は?
私が今持っているコードDependencyObject
は、依存関係プロパティシステムをバイパスしているようです...
私は次のクラスを持っています:
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>
バインディングをデバッグしているときに、DP のセッターを削除する必要があることに気付きました。プロパティが見つからないというエラーが XAML に表示されます。XAML は DP システムを使用して値を割り当て、バインディングを有効にすることを理解していました。この場合、XAML が「通常の」プロパティを期待している場合、バインディングは不可能です。どうすればそれを機能させることができるか、誰でも教えてもらえますか?