我在使用 WPF 时遇到以下问题ComboBox
:
XAML:
<Window.Resources>
<ResourceDictionary>
<DataTemplate DataType="{x:Type this:Data}">
<ComboBox IsTextSearchEnabled="False" IsEditable="True"
Text="{Binding Value}" ItemsSource="{Binding Menu}"/>
</DataTemplate>
</ResourceDictionary>
</Window.Resources>
<StackPanel>
<ContentControl Content="{Binding}"/>
<Button Click="ChangeData_Click">Change Data</Button>
</StackPanel>
后面的代码:
public Window1()
{
InitializeComponent();
DataContext = new Data();
}
void ChangeData_Click(object sender, RoutedEventArgs e)
{
DataContext = new Data();
}
我打开窗口并得到ComboBox
,绑定到我的数据模型,我选择了一些项目(例如 1),一切都很好。
我将数据上下文更改为新的数据模型 - 所选项目(令我惊讶)是 1... 我不希望任何所选项目...
我怀疑这与搜索禁用和可编辑的组合框有关,但我不确定是什么问题。
我找到了解决方法:调用UpdateLayout()
有ContentControl
界的DataContext
,但它很难看。
那是WPF错误吗?都是我的错吗?
请帮忙