带有DataTemplate的WPF可编辑组合框的SelectedItem出现问题

带有DataTemplate的WPF可编辑组合框的SelectedItem出现问题,wpf,combobox,wpf-controls,datatemplate,selecteditem,Wpf,Combobox,Wpf Controls,Datatemplate,Selecteditem,我对WPF组合框有以下问题: XAML: 我打开窗口并获得组合框,绑定到我的数据模型,我选择一些项目(例如1),一切都很好 我将数据上下文更改为一个新的数据模型–所选项目(令我惊讶的是)是1。。。我不希望有任何选定的项目 我怀疑这与组合框有关,该组合框禁用搜索且可编辑,但我不确定问题出在哪里 我找到了一个解决方法:在绑定到DataContext的ContentControl上调用UpdateLayout(),但这很难看 那是WPF bug吗?都是我的错吗 请帮助我已经向提交了相同的问题,这似乎是

我对WPF
组合框有以下问题:

XAML: 我打开窗口并获得
组合框
,绑定到我的数据模型,我选择一些项目(例如1),一切都很好

我将数据上下文更改为一个新的数据模型–所选项目(令我惊讶的是)是1。。。我不希望有任何选定的项目

我怀疑这与组合框有关,该组合框禁用搜索且可编辑,但我不确定问题出在哪里

我找到了一个解决方法:在绑定到
DataContext
ContentControl
上调用
UpdateLayout()
,但这很难看

那是WPF bug吗?都是我的错吗


请帮助

我已经向提交了相同的问题,这似乎是Microsoft的错误。 我发现了一个解决办法,很难看,但很有效。下面是修改后的代码:

    public Window1()
    {
        InitializeComponent();
        DataContext = new Data();
        DataContextChanged += delegate { contentControl.UpdateLayout(); };
    }

    void ChangeData_Click(object sender, RoutedEventArgs e)
    {
        DataContext = null;
        DataContext = new Data();
    }
请注意,要解决此问题,需要将DataContext设置为null并对DataContextChanged调用UpdateLayout()

public Window1()
{
    InitializeComponent();
    DataContext = new Data();
}

void ChangeData_Click(object sender, RoutedEventArgs e)
{
    DataContext = new Data();
}
    public Window1()
    {
        InitializeComponent();
        DataContext = new Data();
        DataContextChanged += delegate { contentControl.UpdateLayout(); };
    }

    void ChangeData_Click(object sender, RoutedEventArgs e)
    {
        DataContext = null;
        DataContext = new Data();
    }