change wpf combobox wpf-controls datatemplate selecteditem

change - using combobox wpf



Problema con SelectedItem de WPF Editable ComboBox con DataTemplate (1)

He enviado la misma pregunta a MSDN WPF Forum y parece un error de Microsoft. Hay una solución alternativa que encontré, fea, pero está funcionando. Aquí está el código modificado detrás:

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

Tenga en cuenta que tanto la configuración de DataContext como nulo y la invocación de UpdateLayout () en DataContextChanged son necesarios para resolver este problema.

Tengo el siguiente problema con 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>

Código detrás:

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

Abro la ventana y obtengo ComboBox , vinculado a mi modelo de datos, selecciono algún elemento (por ejemplo, 1), todo es elegante.

Cambio el contexto de datos a un nuevo modelo de datos: el elemento seleccionado es (para mi sorpresa) 1 ... Donde no espero ningún elemento seleccionado ...

Sospecho que tiene algo que ver con el cuadro combinado que la búsqueda deshabilitó y editable, pero no estoy seguro de cuál fue el problema.

Encontré una UpdateLayout() : llamar a UpdateLayout() en ContentControl limitado a DataContext , pero es feo.

Es ese error de WPF? ¿Es todo por mi culpa?

Por favor ayuda