2017-01-18 9 views
0

私はアコーディオンが必要なUWPアプリケーションを開発しています。したがって、UWPツールキットではアコーディオンコントロールが提供されないため、独自のAccordionコントロールを作成しています。そしてそれは魅力のように機能します。UserControl throwing:要素は既に別の要素の子要素です

私のusercontrolの複数のインスタンスを作成すると、例外がスローされます。私は問題が何であるか全くわからないんだけど

https://1drv.ms/u/s!AiCx3o82H3zNu1DrZxtQ_sTYYf-D

+0

はい...それは私が誰か質問を投稿する前に、次のだと思い、非常に最初のことだ –

+0

エラーメッセージがそう答えない非常に明確である - 「コントロールが一つだけの親を持つことができますが、」。現在のフォームの質問は重複しているようです。問題を絞り込み、質問を編集してみてください。コントロールを定義する方法やエラーが発生したときに、コードを記述したほうがはるかに良いでしょう。 – Romasz

+0

しばらくお待ちいただいている場合は、同封の内容をご確認ください。私はすべての可能な回避策を試しましたが、解決策は見つかりませんでした –

答えて

1

:私は、次のリンクにストリップダウンサンプルを共有しています。 (私はオブジェクトにデフォルトの静的なバッキングプロパティを持っていると思うし、各コントロールに含まれていますが、それを証明することはできません)

しかし、簡単な修正があります。
MydesqAccordionUserControl.xamlを基本的に使用してから、ItemsControlを再実装しようとする代わりに、それを継承することができます。
MydesqAccordionUserControl.xamlMydesqAccordionUserControl.xaml.csを削除し、以下のコードを含むクラスに置き換えてください。問題がソートされました。

using Windows.UI.Xaml.Controls; 

namespace MydesqAccordionUserControl 
{ 
    public class MydesqAccordionControl : ItemsControl 
    { 
     public void CollapseOtherItems(MydesqAccordionItem item) 
     { 
      if (Items != null) 
      { 
       foreach (var mydesqAccordionItem in Items) 
       { 
        if (!mydesqAccordionItem.Equals(item)) 
        { 
         (mydesqAccordionItem as MydesqAccordionItem)?.CollapseContent(); 
        } 
       } 
      } 
     } 
    } 
} 
関連する問題