首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绑定到ActivityDesigner中的datagrid

绑定到ActivityDesigner中的datagrid
EN

Stack Overflow用户
提问于 2011-04-17 00:16:20
回答 2查看 811关注 0票数 1

我是.NET 4的新手,我正在寻找一种方法来设计一个接受某种类型列表的自定义活动(在我的例子中是FormInput)。因此,此活动的每个实例都可以拥有自己的FormInput私有列表。

这段代码片段来自activity designer,这是我一直在尝试的,但由于某些原因,它不起作用。在工作流中使用我的活动时,数据网格将被禁用。

代码语言:javascript
复制
<Grid>...
   <DataGrid AutomationProperties.AutomationId="InputElements" 
      ItemsSource="{Binding Path=ModelItem.InputElements}" CanUserAddRows="True"
      CanUserDeleteRows="True"></DataGrid>
...
</Grid>

这是应该保存列表的自定义Activity类的属性。

代码语言:javascript
复制
public ObservableCollection<FormInput> InputElements

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

发布于 2011-12-01 10:32:11

我明白了,我认为问题出在绑定到一个不可枚举的对象上。

直接绑定到ModelItem属性值解决了此问题

代码语言:javascript
复制
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

票数 1
EN

Stack Overflow用户

发布于 2011-11-24 15:01:24

检查DataGridDataContext设置是否正确,并使用代码片段进行收集:

代码语言:javascript
复制
private ObservableCollection<FormInput> inputElements;

public ObservableCollection<FormInput> InputElements
{
    get
    {
        if (this.inputElements == null)
        {
            this.inputElements = new ObservableCollection<FormInput>();
        }

        return this.inputElements;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5687815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档