如何以编程方式刷新组合框的itemssource的绑定?

时间:2009-07-16 13:21:55

标签: c# wpf binding combobox

我在SO上发现了一些关于这个问题的项目,但他们并不满足我。他们谈论了INotifyProperyChanged,但这对我的情况没有帮助。

我有Combobox。 对于ItemsSource,我使用MultiBindingConverter来创建ICollectionViewICollectionView绑定到ItemsSource

GotFocus - 事件中,需要刷新此绑定,因此转换器会再次被触发。

我该怎么做?

2 个答案:

答案 0 :(得分: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 :(得分:0)

如果您可以在后面的代码中访问ICollectionView,您可能想尝试Refresh方法......

希望这会有所帮助..