Estoy usando RelayCommands en mis ViewModels para deshacerse de los códigos detrás. Los RelayCommands funcionan, excepto en esta situación: el ViewModel en el que se definen los RelayCommands se cambia con el cambio del contexto de datos. Si un comando se activa después de que cambie el contexto de datos, se dispara en el "viejo" modelo de vista. Mientras estoy depurando puedo ver que las propiedades son del antiguo contexto de datos. Pero en la vista todo está bien porque se muestran los datos correctos del modelo de vista correcto.RelayCommand llamado en "viejo" DataContext
Entonces, ¿es posible que los comandos limitados no puedan reaccionar ante un cambio en el contexto de datos? ¿O podría estar pasando algo más?
Aquí un recorte del código:
<TabControl x:Name="TestView" DataContext="{Binding Path=SelectedParentElement}"
TabStripPlacement="Top" ItemsSource="{Binding Path=ChildElements, Mode=OneWay}"
SelectedValue="{Binding Path=SelectedChildElement, Mode=TwoWay}">
<TabControl.ContextMenu>
<ContextMenu>
<MenuItem Header="Klassifikation" Name="Klassifikation">
<MenuItem Header="Kindebene" Name="KlassisfizierendNext" Command="{Binding KlassifizierendNextCommand}"/>
</MenuItem>
</ContextMenu>
</TabControl.ContextMenu>
.......
</TabControl>
El DataContext de la tabcontrol está correctamente cambiando, pero después de cambiar el comando que se está llamando en el antiguo DataContext.
que he tenido exactamente el mismo problema con los enlaces en contextmenus. Supongo que simplemente actualizaría manualmente el enlace cuando cambie el contexto de datos. – Botz3000