Я пытаюсь получить изображения для отображения в WPF ListView, стилизованном под WrapPanel, как описано в этой старой статье команды ATC Avalon: как создать пользовательское представление .
Когда я пытаюсь заполнить ListView набором объектов запросов ADO.NET Entity Framework, запрашиваемым LINQ-to-Entities, я получаю следующее исключение:
исключение
Коллекция предметов должна быть пустой перед использованием ItemsSource.
Мой код ...
Visual Basic
Private Sub Window1_Loaded(...) Handles MyBase.Loaded
ListViewImages.ItemsSource = From g In db.Graphic _
Order By g.DateAdded Ascending _
Select g
End Sub
XAML
<ListView Name="ListViewImages"
SelectionMode="Single"
ItemsSource="{Binding}">
<local:ImageView />
</ListView>
Я поставил точку останова на этой линии. ListViewImages.ItemsSource
как Nothing
раз перед назначением LINQ.
У меня была такая же ошибка некоторое время в немного другом сценарии. я имел
который я исправил
источник
Я просто наткнулся на ОЧЕНЬ коварный пример этой проблемы. Мой оригинальный фрагмент был намного более сложным, что затрудняло увидеть ошибку.
Ошибка? Дополнительный > после начального открытия
<ItemsControl>
тега!<
GOT применяется к встроенным в пунктах сбора. Когда позже был задан DataContext, мгновенный крах. Поэтому при отладке этой проблемы обращайте внимание не только на ошибки, которые окружают ваши дочерние элементы данных ItemsControl.источник
>
=> ExceptionЯ тоже по другому сценарию.
Теперь, когда вы закончите с отсутствующим тегом Control.ItemTemplate , все нормализуется:
источник
<ItemsControl>
.У меня была такая же ошибка в другом сценарии
Решением было добавить
ItemsControl.ItemsPanel
тег передItemsPanelTemplate
источник
⚠️ Чтобы сформулировать ответ по-другому ⚠️
💡 В Xaml убедитесь, что в указанных областях отсутствуют отсутствующие родительские узлы или неправильные узлы .
Например
Это терпит неудачу:
Ниже нет подходящего родителя для
ItemsPanelTemplate
дочернего узла:Это работает:
Parent Существует правильный родительский узел из
<ItemsControl.ItemsPanel>
предоставленного ^^^. 💡источник
<DataGrid.Columns>
и имел столбцы шаблона прямо внутри<DataGrid>
. Странная ошибка для этого.Это исключение возникает при добавлении элементов в
ItemsSource
различные источники . Поэтому убедитесь, что вы случайно не пропустили тег, не поместили тег, не добавили дополнительные теги или не написали тег.Пока
ItemsControl.ItemsSource
это уже установленоBinding
, другие элементы (Сетка, Кнопка, ...) не могут быть добавлены к источнику. Однако в то времяItemsSource
как не в использовании следующий код разрешается :обратите внимание на недостающую
ItemsSource="{Binding MyItems}"
часть.источник
Держите столбец шаблона внутри DataGrid.Columns. Это помогло мне решить эту проблему.
Ref: DataGridTemplateColumn: коллекция элементов должна быть пустой перед использованием ItemsSource.
источник
В моем случае это была просто дополнительная StackPanel внутри ListView:
становится:
и все хорошо.
источник
В моем случае он не использовал DataTemplate для ItemsControl.
Старый:
Новое:
источник
Мой был с стилем данных. Если вы пропустите
<DataGrid.RowStyle>
теги вокруг стиля, вы получите эту проблему. Странно то, что какое-то время это работало. Вот плохой код.и хорошо
источник
У меня была такая же ошибка. Проблема заключалась в том, что этот дополнительный символ «>» был добавлен по ошибке между тегами </ComboBox.SelectedValue> и </ ComboBox>:
и вот правильный код:
источник
У меня была эта ошибка, когда я пытался применить контекстное меню к моему
TreeView
. Эти попытки закончились неудачным XAML, который каким-то образом компилировался:Обратите внимание на проблемную строку:
ContextMenu="">
.Я не знаю, почему это скомпилировано, но я решил, что стоит упомянуть в качестве причины этого загадочного сообщения об исключении. Как сказал Арментаж, внимательно осмотрите XAML, особенно в местах, которые вы недавно редактировали.
источник
Я столкнулся с этой ошибкой в другой ситуации. Я попытался определить стиль для TreeViewItems непосредственно в
<TreeView>
, но вместо этого должен был встроить его в<TreeView.ItemContainerStyle>
.Неправильно:
Верный:
источник
Возможно, не очень полезный ответ, но у меня была та же проблема при изменении порядка столбцов, и я допустил ошибку, подобную приведенной в следующем примере. Имея много столбцов, я переупорядочил их и как-то вставил один после закрытия тега
/DataGrid.Columns
:Во всяком случае, потерял полчаса из-за этого. Надеюсь, что это помогает другим.
источник
Я столкнулся с этой проблемой, потому что один уровень тега,
<ListView.View>
если быть точным, отсутствовал в моем XAML.Этот код выдал эту ошибку.
Следующее исправило это
источник
Остерегайтесь опечаток! У меня было следующее
(Обратите внимание на хвост > , который интерпретируется как контент, так что вы устанавливаете контент в два раза ... У меня ушло немного времени :)
источник