Silverlight 4.0 运行时数据表!

Silverlight 4.0 运行时数据表!,silverlight-4.0,Silverlight 4.0,我有一个表,其中包含表单内容的详细信息,下面是详细信息 输入类型(值=文本/收音机/复选框…) IsRequired(正确/错误) OrderedAnswers(包含收音机可用的选项/复选框) 我想要的是 在运行时创建一个包含相应控件的页面,该页面将每个控件的值提交给服务 此时,我已经创建了dataform,但无法动态定义datatemplate,因此我可以向其中添加stackpanel,并在stackpanel中添加控件(基于值)。您能提供一些代码来动态创建datatemplate并向其添加

我有一个表,其中包含表单内容的详细信息,下面是详细信息

输入类型(值=文本/收音机/复选框…)

IsRequired(正确/错误)

OrderedAnswers(包含收音机可用的选项/复选框)

我想要的是

在运行时创建一个包含相应控件的页面,该页面将每个控件的值提交给服务

此时,我已经创建了dataform,但无法动态定义datatemplate,因此我可以向其中添加stackpanel,并在stackpanel中添加控件(基于值)。您能提供一些代码来动态创建datatemplate并向其添加项目吗

谢谢


Jamal.

我猜想您希望将带有控件的stackpanel添加到特定属性(在带有Silverlight数据表单的ria中)

首先捕获事件
自动生成字段
,即

this.myDataForm.AutoGeneratingField +=new EventHandler<DataFormAutoGeneratingFieldEventArgs>(AutoGeneratingFieldHandler);
这将使您开始使用自定义控件设置数据表单

void AutoGeneratingFieldHandler(object sender, DataFormAutoGeneratingFieldEventArgs e)
{
  if(e.PropertyName=="myPropertyNameWithCustomField")
  {
     StackPanel pnl = new StackPanel();
     pnl.SetValue(StackPanel.OrientationProperty, Orientation.Horizontal);
     ComboBox cbo = new ComboBox();
     //setup binding to base
     Binding b = new Binding("myPropertyNameWithCustomField") { Mode = BindingMode.TwoWay };
     cbo.SetBinding(ComboBox.SelectedValueProperty, b);
     //add the combo to the stackpanel
     pnl.Children.Add(cbo);
     //replace the autogenerated content with the stackpanel
     e.Field.Content=pnl;
     e.Field.IsRequired=true;
  }
}