wpf data-binding binding refresh

¿Es posible "actualizar" los enlaces de datos WPF?



data-binding binding (3)

Aparentemente, este es un problema conocido:

http://social.msdn.microsoft.com/forums/en-US/wpf/thread/8eb8280a-19c4-4502-8260-f74633a9e2f2/

En resumen, un RadioButton (a través de .Net 3.5sp1) de alguna manera elimina enlaces de otros RadioButtons cuando se comprueba mientras se intenta desmarcar cualquier otro botón. La solución simple (léase: hack) es asignar a cada radiobutton un GroupName diferente y luego no intentan meterse entre sí.

Tengo un TabControl xaml y en una página, hay 3 RadioButtons vinculados a una propiedad diferente en el valor seleccionado de un ListView adyacente. Después de cambiar de elementos seleccionados en ListView, mis botones de radio parecen olvidar que están encuadernados y no se actualizan.

Así que mirándolo en el depurador, cuando cambio a un nuevo ítem seleccionado, veo el código que no es de usuario primero verificando el valor en las 3 propiedades, luego solo las dos primeras, y finalmente solo la primera. Sin embargo, si cambio la pestaña y regreso, parece que me da otros pocos usos.

El enlace en sí es bastante sencillo. un enlace bidireccional de una propiedad bool a IsChecked. Tiene 4 niveles de profundidad (Path = DataModel.Selected.AB), pero tengo otras cosas a la misma profundidad que funcionan bien.

¿Es esto algo de lo que las personas han oído hablar y saben lo que podría estar pasando? O si de algún modo se está olvidando el enlace, ¿hay alguna forma de recordar explícitamente el xaml?


Es posible actualizar manualmente enlaces como este:

TestCheckBox .GetBindingExpression(CheckBox.IsCheckedProperty) .UpdateTarget();

Dicho esto, no tengo el 100% de confianza en que esto corrija el problema subyacente. No he tenido este tipo de problemas antes con los enlaces de WPF, pero he tenido un par de problemas extraños con el control de pestañas.


Otra forma de resolver este problema es falsificar una lista de propiedades en un ListBox y hacer que la plantilla ListBoxItem sea un botón de radio.