Я немного новичок в элементе управления DataGrid в WPF.Я встроил DataGrid в UserControl и поместил этот UserControl в окно.DataGrid:
<DataGrid x:Name="mDataGrid" RenderTransformOrigin="0.167,-0.077" Margin="-2.572,0,5.428,0" IsReadOnly="True" AlternatingRowBackground="#1EA2A2E2" AutoGenerateColumns="False" Height="389" VerticalAlignment="Top" Grid.ColumnSpan="5">
<DataGrid.Columns>
<DataGridTextColumn Header="Term" Binding="{Binding Term}"/>
<DataGridTextColumn Header="Alternate" Binding="{Binding Alternate}"/>
<DataGridTextColumn Header="Document" Binding="{Binding Document}"/>
<DataGridTextColumn Header="POS" Binding="{Binding POS}"/>
<DataGridTextColumn Header="Meaning" Binding="{Binding Meaning}"/>
</DataGrid.Columns>
</DataGrid>
Код C #, который я использую для подготовки и отображения элемента управления, в котором он находится:
ObservableCollection<LexiconEntry> oc = new ObservableCollection<LexiconEntry>();
foreach (KeyValuePair<string,LexiconEntry> kvp in lex.Entries)
{
LexiconEntry le=kvp.Value;
oc.Add(le);
}
mDataGrid.ItemsSource = oc;
Теперь, если я запускаю приложение без вызова вышеуказанной подпрограммы -DataGrid пуст - все закрывается правильно.Если, с другой стороны, я вызываю вышеуказанную подпрограмму, чтобы связать ItemSource с DataGrid, процесс остается запущенным после закрытия всех окон.Мне нужно убить его либо с помощью диспетчера задач или Shift + F5 изнутри VS.Окна закрываются, и я проверил обработчики событий Window_Closing и Window_Closed, чтобы убедиться в этом, но сам процесс не выключится.Я не совсем уверен, как увидеть, что поддерживает его в отладчике, но единственное, что вызывает эту разницу в том, изящно ли выходит приложение, - это заполнение DataGrid.
Как это исправить?Я попытался установить для ItemSrid ItemSource значение null из события OnClosing его родительского окна, но это не помогло.
Спасибо!