In una maschera WPF si è creata una visualizzazione tramite datagrid di alcuni dati memorizzati in un database:
...
<Window.Resources>
<CollectionViewSource x:Key="tmpViewSource" d:DesignSource="{d:DesignInstance {x:Type Models:tmpModel}, CreateList=True}"/>
</Window.Resources>
...<DataGrid x:Name="tmpDataGrid" AutoGenerateColumns="False" EnableRowVirtualization="True"
ItemsSource="{Binding Source={StaticResource tmpViewSource}}" Margin="10,48,10,10" RowDetailsVisibilityMode="VisibleWhenSelected" >
<DataGrid.Columns>
<DataGridTextColumn x:Name="firstColumn" Binding="{Binding firstCol}" Header="H1" Width="1*"/>
<DataGridTextColumn x:Name="secondColumn" Binding="{Binding secondCol}" Header="H2" Width="3*" />
<DataGridTextColumn x:Name="thirdColumn" Binding="{Binding thirdCol}" Header="H3" Width="SizeToHeader" Visibility="Hidden"/>
</DataGrid.Columns>
</DataGrid>
...Nel Codice, viene usata la seguente sintassi per popolare il grid con i dati:
... System.Windows.Data.CollectionViewSource tab_FascicoliViewSource; ...
private void Window_Loaded(object sender, RoutedEventArgs e)
{
db = new dbEntities();
tmpViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("tmpViewSource")));
tmpViewSource.Source = db.Tab_Fascicoli.ToList().OrderBy(Tab_Fascicoli => Tab_Fascicoli.NroFascicolo);
}
...Durante la personalizzazione di una visualizzazione di dati all’interno di una maschera WPF si può verificare l’errore sotto riportato:
Additional information: ‘EditItem’ is not allowed for this view.
che è una popup del più generico
Il problema viene risolto se, ovviamente, nel code behind invertiamo ToList() con OrderBy(…):
... tab_FascicoliViewSource.Source = db.Tab_Fascicoli.OrderBy(Tab_Fascicoli => Tab_Fascicoli.NroFascicolo).ToList(); ...

