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