Привязка к сетке данных в 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;
}
}