开发者

Binding to datagrid in ActivityDesigner

开发者 https://www.devze.com 2023-02-25 02:15 出处:网络
I am new to .NET 4 and I am looking for a way to design a custom activity that accepts a list of some type (in my example FormInput). So, each instance of this activity can hold its own private list o

I am new to .NET 4 and I am looking for a way to design a custom activity that accepts a list of some type (in my example FormInput). So, each instance of this activity can hold its own private list of FormInput.

This codesnippet is from the activity designer what I have trying to, which for some reason, doesn't work. The datagrid is disabled when using my activity in a workflow.

<Grid>...
   <DataGrid AutomationProperties.AutomationId="InputElements" 
      ItemsSource="{Binding Path=ModelItem.InputElements}" CanUserAddRows="True"
      CanUserDeleteRows="True"></DataGrid>
...
</Grid>

And this is the property of the custom Activity class that should hold the list.

public ObservableCollection<FormInput> InputElements

Any help is appre开发者_开发知识库ciated.


I got it, think the problem was the binding to a non enumerable object.

Binding directly to the ModelItem property value resolved the issue

public partial class ActivityDesigner1
{
    public ObservableCollection<FormInput> MyProperty
    {
        get { return (ObservableCollection<FormInput>)ModelItem.Properties["InputElements"].ComputedValue; }
    }
}

And in designer: <DataGrid ItemsSource="{Binding Path=MyProperty}"...

You shoud be able to do it using a ValueConverter

Follow this link to solve the problem of adding the first item

Oh, don't forget to initialize your ObservableCollection


Check if DataContext of DataGrid is set correctly and use code snippet for collection:

private ObservableCollection<FormInput> inputElements;

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

        return this.inputElements;
    }
}
0

精彩评论

暂无评论...
验证码 换一张
取 消