0
我有一个用户控制一个在其内含有另一用户控制B.WPF用户控制设计时访问内部用户控制
用户控制A具有一个依赖属性DeviceColour
。这决定了内部用户的色彩控制B.
这种依赖性属性的登记如下:
public static readonly DependencyProperty DeviceColourProperty = DependencyProperty.Register("DeviceColour",
typeof(vhBase.DeviceColours),typeof(ucBaseDevice),new FrameworkPropertyMetadata(vhBase.DeviceColours.Gray,
FrameworkPropertyMetadataOptions.AffectsRender,new PropertyChangedCallback(DeviceColourProperty_PropertyChanged)));
public vhBase.DeviceColours DeviceColour
{
get { return (vhBase.DeviceColours)GetValue(DeviceColourProperty); }
set { SetValue(DeviceColourProperty, value); }
}
private static void DeviceColourProperty_PropertyChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
{
ucBaseDevice device = (ucBaseDevice)obj;
device.VisualDevice.DeviceColour = (vhBase.DeviceColours)e.NewValue;
}
在上述属性变化时,VisualDevice
是指向内部用户控制的特性如下所示B:
public override vhBase VisualDevice
{
get { return vhMain; }
}
vhMain
是用户控制B,其我可以看到并且在XAML设计操纵。
我在设计时遇到的问题是VisualDevice
似乎返回NULL,即vhMain
,用户控件为空,因此“对象引用未设置为实例....”。
这在运行时有效,但我需要它在设计时也能正常工作。你可能已经意识到,我不太了解DP,以及WPF,一般而言,我发现自己在圈子里四处走动。
任何人都可以请帮忙吗?
感谢