मैं इस स्थिर सहायक समारोह है:मैं VisualTreeHelper का उपयोग करने वाली किसी चीज़ का परीक्षण कैसे कर सकता हूं?
public static DependencyObject GetParentObject(DependencyObject child)
{
if (child == null) return null;
ContentElement contentElement = child as ContentElement;
if (contentElement != null)
{
var parent = ContentOperations.GetParent(contentElement);
if (parent != null) return parent;
var fce = contentElement as FrameworkContentElement;
return fce != null ? fce.Parent : null;
}
//if it's not a ContentElement, rely on VisualTreeHelper
return VisualTreeHelper.GetParent(child);
}
यह एक वास्तविक आवेदन में काम करता है, लेकिन मैं इसके लिए कुछ इकाई परीक्षण लिखने की कोशिश कर रहा हूँ।
[Test]
public void GetParentObject_returns_immediate_parent()
{
var contentControl = new ContentControl();
var textBox = new TextBox();
contentControl.BeginInit();
contentControl.Content = textBox;
contentControl.EndInit();
var result = UIHelper.GetParentObject(textBox);
Assert.AreSame(contentControl, result);
}
दुर्भाग्य से यह विफल रहता है क्योंकि VisualTreeHelper
अशक्त लौटने: यहाँ मेरा पहला प्रयास है। मैं एक दृश्य पेड़ का नकल कैसे कर सकता हूं जो काम करेगा?
मैं 'pageContent' को' IAddChild' डाली और ऑपरेशन सीधे प्रदर्शन किया, बल्कि 'ToMaybeOf' और' Do' पर भरोसा करने की बजाय: '((IAddChild) pageContent) .AddChild (fixedPage);' –