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,一般而言,我發現自己在圈子裏四處走動。
任何人都可以請幫忙嗎?
感謝