我有一个如下的类层次结构,并且绑定到 VisibleRange 属性正在设计器中。
给定这里的类层次结构:
// Base class
public abstract class AxisBase : ContentControl, IAxis
{
public static readonly DependencyProperty VisibleRangeProperty = DependencyProperty.Register(
"VisibleRange", typeof(IRange), typeof(AxisBase),
new PropertyMetadata(default(IRange), OnVisibleRangeChanged));
public IRange VisibleRange
{
get { return (IRange)GetValue(VisibleRangeProperty); }
set { SetValue(VisibleRangeProperty, value); }
}
}
// Derived class
public class DateTimeAxis : AxisBase
{
public new IRange<DateTime> VisibleRange
{
get { return (IRange<DateTime>)GetValue(VisibleRangeProperty); }
set { SetValue(VisibleRangeProperty, value); }
}
}
// And interface definitions
public interface IRange<T> : IRange
{
}
设计师(XAML)在这里:
<local:DateTimeAxis Style="{StaticResource XAxisStyle}"
VisibleRange="{Binding ElementName=priceChart,
Path=XAxis.VisibleRange, Mode=TwoWay}"/>
我得到这个例外:
不能在“DateTimeAxis”类型的“VisibleRange”属性上设置“绑定”。只能在 DependencyObject 的 DependencyProperty 上设置“绑定”。
派生类DateTimeAxis
公开了被new
关键字覆盖的 VisibleRange 属性。我无法将泛型类型参数添加到基AxisBase
类,而且我还需要访问这两个类中的属性。所以,我想知道考虑到这些限制,是否有人对如何更好地避免设计器异常有任何建议?