Проблема Silverlight Telerik GridViewComboBoxColumn при вставке - PullRequest
0 голосов
/ 08 июля 2011

Мой сценарий:

У меня есть Telerik Silverlight RadGridView с некоторыми столбцами, и один из них -

<telerik:RadGridView x:Name="Grid1" DataContext="{StaticResource ViewModelDailyReport}" IsSynchronizedWithCurrentItem="True" ScrollMode="RealTime"  AutoGenerateColumns="false" ItemsSource="{Binding LogBookItems}" IsReadOnly="false"   Visibility="Visible" >
[...]
<telerik:GridViewComboBoxColumn
                Header="My Activity"
                DataMemberBinding="{Binding Activity.ID, Mode=TwoWay}"
                SelectedValueMemberPath="ID"
                DisplayMemberPath="Name"
                ItemsSource="{StaticResource ViewModelActivities}">
</telerik:GridViewComboBoxColumn>
[...]

Итак, у меня есть привязка TwoWay к коллекции элементов в ViewModel.

Все работает нормально, кроме случаев, когда я вставляю новый элемент (с помощью команды RadGrid BeginInsert): когда пользователь выбирает элемент из раскрывающегося списка, он всегда пуст в ячейке ...

В связанной коллекции есть новый элемент (при событии вставки), но нет возможности связать вновь добавленный элемент с помощью комбинированного списка.

Что за хитрость?

Спасибо

1 Ответ

0 голосов
/ 31 декабря 2011

Убедитесь, что у вас есть конструктор по умолчанию в классе LogBookItem.

В конструкторе по умолчанию вы можете инициализировать значения по умолчанию, а также создать новый экземпляр Activity, поскольку вы привязываетесь к его идентификатору.

public LogBook()
{
 //initialize default values
 this.CreationDate = DateTime.UtcNow;
 this.Activity = new Activity(); //Activity.ID will equal 0
}
...