文字列を使用してデータフォームのxamlをプログラムで作成しようとしています。私はコンボボックスを表示させることができます。しかし、文字列に "MouseLeftButtonUp"または "Loaded"イベントハンドラを指定するコードを使用しようとすると、それに入るとページは白く(顕著なエラーなしに)変わります。下記の関連コードをご覧ください。Silverlightのdataformのデータテンプレートとして文字列を使用する場合のイベントハンドラ
StringBuilder editTemplate = new StringBuilder("");
editTemplate.Append("<DataTemplate ");
editTemplate.Append("xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' ");
editTemplate.Append("xmlns:toolkit='http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit' ");
editTemplate.Append("xmlns:navigation='clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation' ");
editTemplate.Append("xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' >");
editTemplate.Append("<StackPanel>");
editTemplate.Append(@" <toolkit:DataField Label='" + GetFieldWithoutNumber(theInfo, theDataContext) + "'>");
/* Won't Work */ editTemplate.Append(@" <ComboBox MouseLeftButtonUp='ComboBox_MouseLeftButtonUp' />");
/* Will Work */ editTemplate.Append(@" <ComboBox />");
editTemplate.Append(@" </toolkit:DataField>");
editTemplate.Append("</StackPanel></DataTemplate>");
dynamicDataForm.EditTemplate = XamlReader.Load(editTemplate.ToString()) as DataTemplate;
これは私を驚かせるものではありません。あなたが行うべきことは、データ・テンプレートを作成した後にイベント・ハンドラをプログラムでフックすることです。 – slugster
@slugsterお願いします...どうすればいいですか?ちょうどそれに名前をつけますか? – Kulingar