Как программно обновить привязку источника элементов в выпадающем списке?

2

Я нашел некоторые вопросы относительно этих вопросов на SO, но они меня не удовлетворяют. Они говорят об INotifyProperyChanged, но это не помогает в моем случае.

У меня есть Combobox. Для ItemsSource я использую MultiBinding и Converter для создания ICollectionView. ICollectionView привязывается к ItemsSource.

На GotFocus -event эта привязка должна быть обновлена, поэтому конвертер снова будет запущен.

Как я могу это сделать?

Теги:
wpf
binding
combobox

2 ответа

8
Лучший ответ

Хорошо, коллеж мне помог.

Это решение:

private void theComboBox_OnGotFocus(object sender, RoutedEventArgs e)
{
    ComboBox theComboBox = sender as ComboBox;

    if (theComboBox != null)
    {
        MultiBindingExpression binding = BindingOperations.GetMultiBindingExpression(theComboBox, ComboBox.ItemsSourceProperty);
        if (binding != null)
        {
            binding.UpdateTarget();
        }
    }
}
  • 1
    каждый раз, когда я получаю привязку только как ноль ... я уже дал источник данных ...
  • 2
    Я установил мой с помощью ItemsSource, и просто установив его на ноль и вернув исходную коллекцию, произвел обновление без явных негативных побочных эффектов.
Показать ещё 1 комментарий
0

Если вы можете получить доступ к вашему ICollectionView в своем коде позади, вы можете попробовать Refresh метод...

Надеюсь, что это поможет.

  • 0
    Это не помогает. Это обновляет ICollectionView, но ICollectionView должен быть воссоздан преобразователем. Таким образом, конвертер должен быть обновлен.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню