3
我如何添加選項卡,在一個用戶控件存在從包含在標籤本身內的其他用戶控件一個TabControl TabControl的? 我可以做到這一點,而不需要在構造函數中傳遞tabcontrol作爲參數,也許通過一些靜態的全局方法?將標籤從內部用戶控件
我已經試過
public static ObservableTabCollection FindCollectionFromUC(this DependencyObject depObject)
{
bool loop = true;
var parent = (VisualTreeHelper.GetParent(depObject) as FrameworkElement);
while (loop)
{
if (parent.GetType() is typeof(TabControl))
{
loop = false;
return ((ObservableTabCollection)((TabControl)parent).ItemsSource);
}
parent = parent.GetParent() as FrameworkElement;
}
return null;
}
==== ====編輯的 解決方案是這樣的:
bool loop = true;
var parent = depObject as FrameworkElement;
while (loop)
{
if (parent != null)
{
parent = VisualTreeHelper.GetParent(parent) as FrameworkElement;
var type = parent.GetType();
if (parent.GetType() == typeof(TabControl))
{
loop = false;
return ((ObservableTabCollection)((TabControl)parent).ItemsSource);
}
}
else { loop = false; }
}
return null;
只有一個在整個應用程序的tabcontrol,所以它是唯一一個我需要找到。你能舉一個實現的例子嗎? – Jakob 2010-06-17 20:51:52
只是遞歸地走「父」屬性,直到對象是一個TabControl。 – 2010-06-17 20:53:50
我不完全知道我怎麼會做正確 – Jakob 2010-06-17 21:48:22