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