Patrick Skelton Ответов: 0

Как остановить ошибку привязки данных при отмене выбора элемента в combobox?


У меня есть экран, который показывает то, что на самом деле является мастер-детальным представлением. Мастер - это список проектов. Детальная часть вида имеет ComboBox это показывает имя менеджера проекта для выбранного проекта. То ComboBox список привязан к списку имен, предоставленных совершенно другим классом.

Все работает нормально до тех пор, пока я не нажму кнопку, которая должна отменить выбор всего на экране - то есть вернуть экран в то состояние, в которое он был загружен впервые. Когда я установил SelectedIndex собственность компании ComboBox до -1 Я получаю следующую ошибку:

Система.Окна.Ошибка данных: 4: не удается найти источник для привязки со ссылкой 'RelativeSource FindAncestor, AncestorType=' System.Окна.Управления.ItemsControl', AncestorLevel= '1". BindingExpression: Path=HorizontalContentAlignment; DataItem=null; целевой элемент - 'ComboBoxItem' (Name="); целевое свойство - 'HorizontalContentAlignment' (тип 'HorizontalAlignment')

У кого-нибудь есть идеи, что может быть происходит не так? Должен признаться, что я нахожусь в неведении, как это отладить. Кажется, я перепробовал все.

Добрые пожелания ~ Патрик

Что я уже пробовал:

Я попробовал установить SelectedItem null одновременно с установкой SelectedIndex в значение -1.

Я пробовал не устанавливать SelectedIndex вообще, что не дает никакой ошибки, но оставляет поле, отображающее имя последнего выбранного проекта.

Я попытался добавить пустую строку в список имен, которые ComboBox это неизбежно.

И я уверен, что перепробовал еще около 50 вещей, которые даже не могу вспомнить.

Richard Deeming

Вы используете MVVM?

Patrick Skelton

Проект - это WPF, и я старался держаться достаточно близко к шаблону MVVM, но я не использую никакой конкретной структуры. Надеюсь, это ответ на ваш вопрос.

0 Ответов