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