フォルダ内のすべてのファイルを反復処理し、見つかったJPEGファイルごとに画像コントロールを動的に作成したいと思います。完成したら、動的に作成された画像コントロールで満たされたフォームが必要です(サムネイルビューを備えたPicasaなどのほぼすべての写真表示ソフトウェアを考えてみてください)。
ある種のドラッグドロップイベントハンドラーを実装することで、フォーム上で動的に作成されたこれらの画像コントロールを並べ替えることができるようにしたいと思います。遭遇する画像の数がわからないため、存在する場合と存在しない場合がある各画像コントロールのイベントハンドラーをハードコーディングすることはできません。そこで、動的に作成されたコントロールにイベントハンドラーを動的に追加する方法を探しています。
以下のコードで使用されているメソッドは、ほぼ私が探しているものです。以下のメソッドの問題は、コントロールの名前がわからない場合、イベントハンドラーをハードコーディングできないことです。
public partial class RoutedEventAddRemoveHandler {
void MakeButton(object sender, RoutedEventArgs e)
{
Button b2 = new Button();
b2.Content = "New Button";
// Associate event handler to the button. You can remove the event
// handler using "-=" syntax rather than "+=".
b2.Click += new RoutedEventHandler(Onb2Click);
root.Children.Insert(root.Children.Count, b2);
DockPanel.SetDock(b2, Dock.Top);
text1.Text = "Now click the second button...";
b1.IsEnabled = false;
}
void Onb2Click(object sender, RoutedEventArgs e)
{
text1.Text = "New Button (b2) Was Clicked!!";
}
}
XAMLではなくc#コードで解決策を探していることに注意してください。これは、次のようなコードを使用してコントロールを追加するソリューションです。
// What I want
Fields.Add(new Field() { Name = "Username", Length = 100, Required = true });
このようではありません:
// What I do not want
<TextBox Width="100" Canvas.Left="50" Canvas.Top="20" />
ありがとう