我是.NET 4的新手,我正在寻找一种方法来设计一个接受某种类型列表的自定义活动(在我的例子中是FormInput)。因此,此活动的每个实例都可以拥有自己的FormInput私有列表。
这段代码片段来自activity designer,这是我一直在尝试的,但由于某些原因,它不起作用。在工作流中使用我的活动时,数据网格将被禁用。
<Grid>...
<DataGrid AutomationProperties.AutomationId="InputElements"
ItemsSource="{Binding Path=ModelItem.InputElements}" CanUserAddRows="True"
CanUserDeleteRows="True"></DataGrid>
...
</Grid>这是应该保存列表的自定义Activity类的属性。
public ObservableCollection<FormInput> InputElements任何帮助都是非常感谢的。
发布于 2011-12-01 10:32:11
我明白了,我认为问题出在绑定到一个不可枚举的对象上。
直接绑定到ModelItem属性值解决了此问题
public partial class ActivityDesigner1
{
public ObservableCollection<FormInput> MyProperty
{
get { return (ObservableCollection<FormInput>)ModelItem.Properties["InputElements"].ComputedValue; }
}
}在设计器中:<DataGrid ItemsSource="{Binding Path=MyProperty}"...
你应该能够使用ValueConverter来做这件事
遵循this link来解决添加第一项的问题
哦,不要忘记初始化你的ObservableCollection
发布于 2011-11-24 15:01:24
检查DataGrid的DataContext设置是否正确,并使用代码片段进行收集:
private ObservableCollection<FormInput> inputElements;
public ObservableCollection<FormInput> InputElements
{
get
{
if (this.inputElements == null)
{
this.inputElements = new ObservableCollection<FormInput>();
}
return this.inputElements;
}
}https://stackoverflow.com/questions/5687815
复制相似问题