У меня есть приложение 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
? Есть ли способ очистить значения заголовков?.
Пожалуйста, предложите...