Заполненная DataGrid не позволит приложению закрыться изящно - PullRequest
1 голос
/ 19 августа 2010

Я немного новичок в элементе управления 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 его родительского окна, но это не помогло.

Спасибо!

1 Ответ

0 голосов
/ 20 августа 2010

Mike, откуда взяты объекты LexiconEntry в словаре? Сколько пар у вас в lex.Entries?

Мое предложение состоит в том, чтобы попытаться создать новый тестовый класс, который выглядит как LexiconEntry, и добавить столько их, сколько имеется в lex.Entries. Если все работает хорошо, проблема заключается в объектах LexiconEntry в словаре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...