I have run into an issue with a runtime error when trying to edit a textbox in a datagrid.
"EditItem Not allowed for this view" I think this means that somewhere along the lines it has lost the connection back to the object but I am not sure.
Code:
private ObservableCollection<Model.TextureProperties> AllTextureProperties;
public ObservableCollection<Model.TextureProperties> _allTextureproperties
{
get{ return AllTextureProperties;}
set{ AllTextureProperties=value;
OnPropertyChanged("_allTextureProperties");
}
}
public CourseAssetListViewModel(CourseRepository courseRepository)
{
if (courseRepository == null)
{
throw new ArgumentNullException("courseRepository");
}
_courseRepository = courseRepository;
this.AllTextureProperties = new ObservableCollection<Model.TextureProperties>(_courseRepository.GetTextureProperties());
//this.Textures = (ListCollectionView) CollectionViewSource.GetDefaultView(this.AllTextureProperties);
//Textures.Filter
this.Textures = new CollectionViewSource();
this.Textures.Source = (from z in this.AllTextureProperties select z.TextureName);
this.SubTextures = new CollectionViewSource();
this.SubTextures.Source = (from j in this.AllTextureProperties select j);
}
Then I have a comboBox as follows
Code:
<ComboBox Name="subtextureselection" HorizontalAlignment="Stretch" ItemsSource="{Binding Textures.View}" IsEditable="False" Height="23" IsSynchronizedWithCurrentItem="True" Width="123">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel DataContext="{Binding}">
<TextBlock Text="{Binding}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
And a DataGrid
Code:
<DockPanel Grid.Row="2" Height="84" HorizontalAlignment="Stretch" Name="dockPanel4" VerticalAlignment="Stretch" >
<DataGrid ItemsSource="{Binding SubTextures.View}" IsSynchronizedWithCurrentItem="True" >
<DataGrid.Columns>
<DataGridTextColumn Header="Lie Angular" Binding="{Binding Path=LieAngular}" />
<DataGridTextColumn Header="Lie Snap Angular" Binding="{Binding Path=LieSnapAngular}"/>
<DataGridTextColumn Header="Lie Power" Binding="{Binding Path=LiePower}"/>
<DataGridTextColumn Header="Lie Snap Power" Binding="{Binding Path=LieSnapPower}"/>
<DataGridTextColumn Header="Restitution" Binding="{Binding Path=Restitution}"/>
<DataGridTextColumn Header="Friction" Binding="{Binding Path=Friction}"/>
<DataGridTextColumn Header="Viscosity" Binding="{Binding Path=Viscosity}"/>
<DataGridTextColumn Header="Maleability" Binding="{Binding Path=Maleability}"/>
<DataGridTextColumn Header="Roll Friction" Binding="{Binding Path=RollFriction}"/>
<DataGridTextColumn Header="Roll Threshold" Binding="{Binding Path=RollThreshold}"/>
<DataGridTextColumn Header="Impact Offset" Binding="{Binding Path=ImpactOffset}"/>
<DataGridTextColumn Header="Angle Miss" Binding="{Binding Path=AngleMiss}"/>
<DataGridTextColumn Header="Power Miss" Binding="{Binding Path=PowerMiss}"/>
<DataGridTextColumn Header="Snap" Binding="{Binding Path=Snap}"/>
</DataGrid.Columns>
</DataGrid>
</DockPanel>
The comboBox displays a list of textures and on selection the datagrid populates with a new set of texture values, however as soon as I try to edit any of them in the textbox I get this crash. Can anyone see what I am doing wrong?
Thanks