我正在开发一个基于自定义类的CustomControl
公开.DependencyProperty
SearchRange
Range
public class MyCustomControl : Control
{
public static readonly DependencyProperty SearchRangeProperty
= DependencyProperty.Register(
"SearchRange",
typeof (Range<DateTime>),
typeof (VariableBrowser));
// ...
public Range<DateTime> SearchRange
{
get { return (Range<DateTime>)this.GetValue(SearchRangeProperty); }
set { this.SetValue(SearchRangeProperty, value); }
}
// ...
}
该类Range
包含两个不同的属性,Minimum
和Maximum
,它实现了INotifyPropertyChanged
。
public class Range<T> : INotifyPropertyChanged where T : IComparable
{
private T _maximum;
private T _minimum;
public T Maximum
{
get { return this._maximum; }
set
{
this._maximum = value;
this.OnPropertyChanged("Maximum");
}
}
public T Minimum
{
get { return this._minimum; }
set
{
this._minimum = value;
this.OnPropertyChanged("Minimum");
}
}
// ...
}
我遵循的规范要求使用我的自定义控件的应用程序应该能够绑定到SearchRange
属性,以便读取其内部值(Minimum
和Maximum
),因为这些必须在内部处理并仅由我的CustomControl
. 绑定目标应在SearchRange
属性或其内部道具(Minimum
和Maximum
)发生任何变化后更新,而无需重新分配整个SearchRange
. 或者,我应该允许直接绑定到内部属性(SearchRange.Minimum
和SearchRange.Maximum
)。
我尝试了许多不同的方法来达到这个结果,但没有一个成功。我怎样才能获得所需的结果?
提前致谢。