У меня есть приложение WPF с шаблоном MVVM. В одном из моих представлений мне нужно привязать ObservableCollection для просмотра. В этом представлении у меня есть один ListBox и один DataGrid оба привязаны к тому же ObservableCollection, но выполняют разные вещи, такие как события, стиль и т.д.
Мне нужен только один из этих элементов управления, отображаемый за раз, и я создал два пользовательских элемента управления: один для DataGrid и другой для ListBox. И я переключился между ними, разместив ContentControl на главном представлении (что-то похожее на этот блог. По умолчанию отображается DataGrid и при нажатии на кнопку отображается другое представление (т.е. ListBox). До этого они работают нормально.
Еще одна вещь, чтобы иметь в виду, что столбцы Data Grid генерируются динамически, используя решение, описанное в следующей ссылке. Поэтому, когда я возвращаюсь к просмотру DataGrid, он бросает ошибку при добавлении столбцов в Data Grid в выражении foreach (PLS ссылается на ответ предыдущей ссылки), например
"DataGridColumn с заголовком" Ord "уже существует в коллекции Columns
DataGrid. DataGrids не могут совместно использовать столбцы и не могут содержать повторяющиеся экземпляры столбцов.
Но я уверен, что перед добавлением столбцов в DataGrid его свойство Count равно нулю (dataGrid.Columns.Count()). Итак, как сохраняются свойства заголовка DataGrid? Есть ли способ очистить значения заголовков?.
Пожалуйста, предложите...