C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: WPF コントロールの複製(TabControl)に関して


(過去ログ 82 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■48673 / inTopicNo.1)  WPF コントロールの複製(TabControl)に関して
  
□投稿者/ WPF初心者 (3回)-(2010/04/12(Mon) 12:50:24)

分類:[.NET 全般] 

VS2008
C#
WPF

はじめまして、
WPFでタブコントロール(TabControl)に対して、
リストなどのコンポーネントを所持したタブ(TabItem)を
プログラム上(C#)から動的に追加する必要があります。

しかし、
タブ(TabItem)のコピーの形で
タブコントロールに追加しようと、
以下のようなコードを書いたところ

*****************************************************************
TabItem newTabItem = new TabItem();
newTabItem.Header = "新規タブ";
newTabItem.Name = "newTabItem";
newTabItem.Content = コピー元タブ.Content;         ⇒ ※1 例外発生
newTabItem.DataContext = コピー元タブ.DataContext; ⇒ ※2
TabOperatePlan.Items.Add(newTabItem);

※1 … "既に別の要素の論理子です。まず接続を切断してください" のようなエラーが発生してしまします。
※2 … これは正しく値が代入されます。
*****************************************************************

今月からWPFを触っているため、
かなり手間取っています。

コントロールの複製をコード上で行うのは、
簡単なようにも思えますが、
私の技術では、すぐに解決することができないようです。。。。

レイアウトを保持したままのコントロールの
複製方法を教えていただけるとありがたいです。
よろしくお願い致します。

引用返信 編集キー/
■48677 / inTopicNo.2)  Re[1]: WPF コントロールの複製(TabControl)に関して
□投稿者/ 囚人 (494回)-(2010/04/12(Mon) 13:24:25)
WPFに限りませんが、UIのコンポーネントに対して、その類の「クローン」をすべきではないです。エラーメッセージにあるように、常に親は一つしかもてないからです。

単に同じレイアウトを複製したいなら、「コピー元タブ.Content」を別クラス(UserControl)として実装し、「別のインスタンス」を作るべきでしょうね。

引用返信 編集キー/
■48681 / inTopicNo.3)  Re[2]: WPF コントロールの複製(TabControl)に関して
□投稿者/ WPF初心者 (4回)-(2010/04/12(Mon) 13:47:31)
>囚人さん

ありがとうございます。
そうですよね。。。

別コントロールとします。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -