Esta es la solución de trabajo, sin embargo, cuando la selección cambia SelectedItemsProperty no se actualiza encuadernaciones ...
puede crear un control personalizado de la siguiente manera
public class MyListBox: ListBox{
public MyListBox()
{
this.SelectionChanged += (s,e)=>{ RefreshBindings(); };
}
private void RefreshBindings()
{
BindingExpression be =
(BindingExpression) GetBindingExpression(
SelectedItemsProperty);
if(be!=null){
bd.UpdateTarget();
}
}
}
o en su aplicación se puede definir evento en cada cuadro de lista como se muestra a continuación ..
myListBox.SelectionChanged += (s,e) => {
BindingExpression be =
(BindingExpression) myListBox.GetBindingExpression(
ListBox.SelectedItemsProperty);
if(be!=null){
bd.UpdateTarget();
}
};
No tengo varios elementos seleccionados y quiero mostrarlas en ListBox en estado seleccionado – Polaris
Dado que la propiedad es de sólo lectura, no se puede utilizar para lo que querer. Lo único que se me ocurre es establecer propiedades individuales 'ListBoxItem.IsSelected'. Si insiste en la vinculación, la ruta más fácil sería crear, p. un SelectedItems adjuntado 'DependencyProperty' con lógica personalizada en el controlador de eventos modificado por evento. – wpfwannabe