У меня возникла следующая проблема с 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? Это все моя вина?
Пожалуйста помоги