In my application I have a RadGridView and a Data Form. If I change the group or type of the DocumentTitle on the CombBox in Data Form, I get the following error message:
"The property 'Id' is part of the object's key information and cannot be modified."
XAML-Code (DataGrid):
01.
<
telerik:RadEntityFrameworkDataSource
Name
=
"DocumentTitlesDataSource"
QueryName
=
"DocumentTitles"
>
02.
</
telerik:RadEntityFrameworkDataSource
>
03.
04.
<
telerik:RadGridView
x:Name
=
"Entries"
Grid.Row
=
"1"
05.
ItemsSource
=
"{Binding DataView, ElementName=DocumentTitlesDataSource}"
06.
SelectedItem
=
"{Binding DataView.CurrentItem, Mode=OneWay, ElementName=DocumentTitlesDataSource}"
07.
SelectionMode
=
"Single"
08.
IsReadOnly
=
"True"
09.
AutoGenerateColumns
=
"False"
10.
IsSynchronizedWithCurrentItem
=
"True"
11.
CanUserDeleteRows
=
"False"
12.
CanUserFreezeColumns
=
"False"
13.
CanUserInsertRows
=
"False"
14.
CanUserReorderColumns
=
"False"
15.
CanUserResizeColumns
=
"False"
16.
CanUserSortColumns
=
"False"
17.
CanUserSortGroups
=
"False"
18.
IsFilteringAllowed
=
"False"
19.
ShowGroupPanel
=
"False"
20.
ShowColumnHeaders
=
"False"
SelectionChanging
=
"Entries_SelectionChanging"
>
21.
<
telerik:RadGridView.Columns
>
22.
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Id}"
Header
=
"Id"
Width
=
"20"
IsVisible
=
"False"
/>
23.
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding User.Id}"
Header
=
"Benutzer"
Width
=
"10"
IsVisible
=
"False"
/>
24.
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Computer}"
Header
=
"Computer"
Width
=
"10"
IsVisible
=
"False"
/>
25.
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Name}"
Header
=
"Dokumententitel"
Width
=
"*"
/>
26.
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Group.Id}"
Header
=
"Dokumentengruppe"
Width
=
"200"
/>
27.
<
telerik:GridViewComboBoxColumn
x:Name
=
"cbxDocumentTitleGroup"
DataMemberBinding
=
"{Binding Group.Id}"
28.
DisplayMemberPath
=
"Name"
29.
SelectedValueMemberPath
=
"Id"
30.
Header
=
"Dokumentengruppe"
31.
Width
=
"100"
/>
32.
<
telerik:GridViewComboBoxColumn
x:Name
=
"cbxDocumentTitleType"
DataMemberBinding
=
"{Binding Type.Id}"
33.
DisplayMemberPath
=
"Name"
34.
SelectedValueMemberPath
=
"Id"
35.
Header
=
"Dokumententyp"
36.
Width
=
"100"
/>
37.
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding System}"
Header
=
"System"
Width
=
"10"
IsVisible
=
"False"
/>
38.
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Locked}"
Header
=
"Gesperrt"
Width
=
"10"
IsVisible
=
"False"
/>
39.
</
telerik:RadGridView.Columns
>
40.
</
telerik:RadGridView
>
XAML-Code (DataForm):
01.
<
Grid.Resources
>
02.
<
DataTemplate
x:Key
=
"WriteTemplate"
>
03.
<
Grid
>
04.
<
Grid.ColumnDefinitions
>
05.
<
ColumnDefinition
Width
=
"150"
></
ColumnDefinition
>
06.
<
ColumnDefinition
Width
=
"*"
></
ColumnDefinition
>
07.
</
Grid.ColumnDefinitions
>
08.
<
Grid.RowDefinitions
>
09.
<
RowDefinition
></
RowDefinition
>
10.
<
RowDefinition
></
RowDefinition
>
11.
<
RowDefinition
></
RowDefinition
>
12.
<
RowDefinition
></
RowDefinition
>
13.
<
RowDefinition
></
RowDefinition
>
14.
</
Grid.RowDefinitions
>
15.
<
Label
Grid.Row
=
"0"
Grid.Column
=
"0"
Margin
=
"0,5,0,0"
>Dokumententitel:</
Label
>
16.
<
Label
Grid.Row
=
"1"
Grid.Column
=
"0"
Margin
=
"0,5,0,0"
>Dokumentengruppe:</
Label
>
17.
<
Label
Grid.Row
=
"2"
Grid.Column
=
"0"
Margin
=
"0,5,0,0"
>Dokumententyp:</
Label
>
18.
<
Label
Grid.Row
=
"3"
Grid.Column
=
"0"
Margin
=
"0,5,0,0"
>Gesperrt:</
Label
>
19.
<
Label
Grid.Row
=
"4"
Grid.Column
=
"0"
Margin
=
"0,5,0,0"
>Systemeintrag:</
Label
>
20.
<
telerik:DataFormDataField
Grid.Row
=
"0"
Grid.Column
=
"1"
DataMemberBinding
=
"{Binding Name , Mode=TwoWay}"
HorizontalAlignment
=
"Stretch"
LabelPosition
=
"Above"
Margin
=
"0,5,0,0"
/>
21.
<
telerik:DataFormComboBoxField
Grid.Row
=
"1"
Grid.Column
=
"1"
HorizontalAlignment
=
"Stretch"
LabelPosition
=
"Above"
Margin
=
"0,5,0,0"
22.
ItemsSource
=
"{Binding ItemsSource, ElementName=cbxDocumentTitleGroup, Mode=TwoWay}"
23.
DataMemberBinding
=
"{Binding Group.Id}"
24.
DisplayMemberPath
=
"Name"
25.
SelectedValuePath
=
"Id"
26.
SelectedIndex
=
"{Binding Group}"
/>
27.
<
telerik:DataFormComboBoxField
Grid.Row
=
"2"
Grid.Column
=
"1"
HorizontalAlignment
=
"Stretch"
LabelPosition
=
"Above"
Margin
=
"0,5,0,0"
28.
ItemsSource
=
"{Binding ItemsSource, ElementName=cbxDocumentTitleType}"
29.
DataMemberBinding
=
"{Binding Type.Id}"
30.
DisplayMemberPath
=
"Name"
31.
SelectedValuePath
=
"Id"
32.
SelectedIndex
=
"{Binding Type}"
/>
33.
<
telerik:DataFormCheckBoxField
Grid.Row
=
"3"
Grid.Column
=
"1"
DataMemberBinding
=
"{Binding Locked , Mode=TwoWay}"
HorizontalAlignment
=
"Stretch"
LabelPosition
=
"Above"
Margin
=
"0,5,0,0"
/>
34.
<
telerik:DataFormCheckBoxField
Grid.Row
=
"4"
Grid.Column
=
"1"
IsReadOnly
=
"True"
DataMemberBinding
=
"{Binding System , Mode=TwoWay}"
HorizontalAlignment
=
"Stretch"
LabelPosition
=
"Above"
Margin
=
"0,5,0,0"
/>
35.
</
Grid
>
36.
</
DataTemplate
>
37.
</
Grid.Resources
>
38.
39.
<
telerik:RadDataForm
x:Name
=
"EntryDetails"
Grid.Row
=
"2"
Header
=
"Dokumententitel"
40.
CommandButtonsVisibility
=
"Cancel, Commit"
AutoGenerateFields
=
"False"
AutoCommit
=
"False"
41.
EditEnding
=
"EntryDetails_EditEnding"
ValidatingItem
=
"EntryDetails_ValidatingItem"
EditEnded
=
"EntryDetails_EditEnded"
42.
ReadOnlyTemplate
=
"{StaticResource ReadTemplate}"
43.
EditTemplate
=
"{StaticResource WriteTemplate}"
44.
NewItemTemplate
=
"{StaticResource WriteTemplate}"
45.
ItemsSource
=
"{Binding DataView, ElementName=DocumentTitlesDataSource}"
/>
C# Code:
01.
public DocimpDocumentTitles(VIMANTO.Environment My)
02.
{
03.
InitializeComponent();
04.
my = My;
05.
db.Database.Connection.ConnectionString = my.CurrentConnection.GetSqlConntectionString();
06.
DocumentTitlesDataSource.DbContext = db;
07.
08.
ObservableCollection<
CatalogEntry
> documentTitleGroups = new ObservableCollection<
CatalogEntry
>();
09.
ObservableCollection<
CatalogEntry
> documentTitleTypes = new ObservableCollection<
CatalogEntry
>();
10.
11.
documentTitleGroups = Database.Views.CatalogViews.GetCatalogEntries(my.CurrentConnection, VIMANTO.Database.Views.CatalogViews.GetCatalog(my.CurrentConnection, "Dokumentengruppen").Id, true);
12.
cbxDocumentTitleGroup.ItemsSource = documentTitleGroups;
13.
14.
documentTitleTypes = Database.Views.CatalogViews.GetCatalogEntries(my.CurrentConnection, VIMANTO.Database.Views.CatalogViews.GetCatalog(my.CurrentConnection, "Dokumententypen").Id, true);
15.
cbxDocumentTitleType.ItemsSource = documentTitleTypes;
16.
}