0
私はいくつかの子コントロールからなるユーザーコントロールを持っていますMyUserControl
を呼び出すことができます。Windowsの子コントロールのUserControlを取得
他のコントロールの中には、子としてtextbox
が含まれています。私は子供textbox
を持っている場合は、どのように私はtextbox
が常駐することをちょうどGrid
親としてMyUserControl
を取得しないでください。
私が見つかりましたが、それは動作しません静的メソッドがあります。
public static T GetParentOfType<T>(this Control control)
{
const int loopLimit = 100; // could have outside method
var current = control;
var i = 0;
do
{
current = current.Parent;
if (current == null) throw new Exception("Could not find parent of specified type");
if (i++ > loopLimit) throw new Exception("Exceeded loop limit");
} while (current.GetType() != typeof(T));
return (T)Convert.ChangeType(current, typeof(T));
}
ラインcurrent = current.Parent;
はDependencyObject
制御する型をキャストしようとしましたか?たとえば、 'current = current.Parent as Control;'または 'current =(Control)current.Parent;'のようになります。コントロールに渡されたコントロールの親がControlに型キャストされると仮定します。 –
'FrameworkElement current = control;'と 'current = current.Parent as FrameworkElement;'のようにキャストしようとしました。 – PutraKg