我有一個類層次結構如下,並綁定到VisibleRange屬性拋出設計器。綁定只能在DependencyObject的DependencyProperty上設置 - 當屬性被新的覆蓋時
鑑於類層次結構在這裏:
// 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}"/>
我得到這個異常:
A '綁定' 不能設置類型'DateTimeAxis'的'VisibleRange'屬性。 '綁定'只能在DependencyObject的DependencyProperty上設置。
派生類DateTimeAxis
暴露了VisibleRange屬性,該屬性被new
關鍵字覆蓋。我無法向基類AxisBase
類添加泛型類型參數,並且我還需要訪問這兩個類中的屬性。所以,我想知道這些限制,如果任何人有任何建議,如何更好地做到這一點,以避免設計師的例外?
Andrew Burnett-Thom:你有沒有嘗試在我的答案中編碼?它有用嗎? – Tigran 2012-04-05 21:58:54