运行时数据表!

时间:2010-09-01 10:07:36

标签: silverlight-4.0

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

InputType(value = Text / Radio / CheckBox,....)

IsRequired(真/假)

OrderedAnswers(包含Radio /复选框可用的选项)

...

我想要的是,

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

此时我已经创建了数据表单,但是无法动态定义datatemplate以便我可以向其添加stackpanel,并且在stackpanel中我将添加控件(基于值)。你能提供一些动态创建数据模板和项目的代码吗?

感谢

贾马尔。

1 个答案:

答案 0 :(得分:1)

我认为你想要将带有控件的stackpanel添加到特定属性(在带有Silverlight DataForm的ria中)

首先捕获事件AutoGeneratingField,即

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;
  }
}

这应该让您开始使用自定义控件设置DataForm。