正しく動作している Silverlight 4 のユーザー コントロールで、データ グリッドの列を動的に作成しています。データ グリッドの最初の列はボタンなので、次のコードを使用して DataGrid の DataTemplate を追加しています。
DataGridTemplateColumn templateColumn = new DataGridTemplateColumn();
templateColumn.Header = "Search";
StringBuilder sb = new StringBuilder();
sb.Append("<DataTemplate ");
sb.Append("xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' ");
sb.Append("xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>");
sb.Append("<Button Name='searchBtn' Width='25' Height='20' Click='performFastSearch' >");
sb.Append("<Image Source='http://localhost/SiteAssets/img/Homepage/ribbon_top_right.png' Stretch='None' />");
sb.Append("</Button>");
sb.Append("</DataTemplate>");
templateColumn.CellTemplate = (DataTemplate)XamlReader.Load(sb.ToString());
Click="performFastSearch" の部分を省略してもコードは機能しますが、追加すると「crossappdomainmarshaledexception」で壊れます。
これは、クリックハンドラーメソッドを追加しようとする方法ですか、それとも別のものを使用する必要がありますか?