Привязка к сетке данных в ActivityDesigner

Я новичок в.NET 4, и я ищу способ разработать пользовательское действие, которое принимает список какого-либо типа (в моем примере FormInput). Таким образом, каждый экземпляр этого действия может содержать собственный закрытый список FormInput.

Этот codenippet от дизайнера деятельности, что я пытаюсь, что по какой-то причине не работает. Сетка данных отключена при использовании моей активности в рабочем процессе.

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

И это свойство пользовательского класса Activity, которое должно содержать список.

public ObservableCollection<FormInput> InputElements

Любая помощь приветствуется.

2 ответа

Я понял, думаю, проблема была в привязке к не перечисляемому объекту.

Привязка непосредственно к ModelItem Значение свойства решило проблему

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

И в дизайнере: <DataGrid ItemsSource="{Binding Path=MyProperty}"...

Вы должны быть в состоянии сделать это с помощью ValueConverter

Перейдите по этой ссылке, чтобы решить проблему добавления первого элемента

О, не забудьте инициализировать вашу коллекцию ObservableCollection

Проверить, если DataContext из DataGrid установлен правильно и используйте фрагмент кода для сбора:

private ObservableCollection<FormInput> inputElements;

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

        return this.inputElements;
    }
}
Другие вопросы по тегам