Tengo un control WPF ListBox
y estoy configurando ItemsSource
en una colección de objetos de elementos. ¿Cómo puedo vincular la propiedad IsSelected
del ListBoxItem
a una propiedad Selected
de un objeto de elemento correspondiente sin tener una instancia del objeto para establecer como Binding.Source
?Vinculando la propiedad IsSelected de ListBoxItem a una propiedad en el objeto de su origen
17
A
Respuesta
34
Sólo anulan ItemContainerStyle:
<ListBox ItemsSource="...">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="IsSelected" Value="{Binding Selected}"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
Ah, por cierto, creo que desea esta maravillosa artículos de dr.WPF: ItemsControl: A to Z.
Espero que esto ayude.
2
Estaba buscando una solución en el código, así que aquí está la traducción de eso.
System.Windows.Controls.ListBox innerListBox = new System.Windows.Controls.ListBox();
//The source is a collection of my item objects.
innerListBox.ItemsSource = this.Manager.ItemManagers;
//Create a binding that we will add to a setter
System.Windows.Data.Binding binding = new System.Windows.Data.Binding();
//The path to the property on your object
binding.Path = new System.Windows.PropertyPath("Selected");
//I was in need of two way binding
binding.Mode = System.Windows.Data.BindingMode.TwoWay;
//Create a setter that we will add to a style
System.Windows.Setter setter = new System.Windows.Setter();
//The IsSelected DP is the property of interest on the ListBoxItem
setter.Property = System.Windows.Controls.ListBoxItem.IsSelectedProperty;
setter.Value = binding;
//Create a style
System.Windows.Style style = new System.Windows.Style();
style.TargetType = typeof(System.Windows.Controls.ListBoxItem);
style.Setters.Add(setter);
//Overwrite the current ItemContainerStyle of the ListBox with the new style
innerListBox.ItemContainerStyle = style;
+3
Hola BrandonS, Quizás ambas soluciones funcionen bien; sin embargo, cuando sea posible, prefiera el enfoque declarativo xml para definir comportamientos de IU. De esta forma, más personas (desarrolladores de interacción, etc.) pueden entenderlo y modificarlo fácilmente. Saludos, – wacdany
Cuestiones relacionadas
- 1. propiedad IsSelected de WPF TabItem
- 2. WPF, XAML: cómo diseñar un ListBoxItem utilizando el enlace en la propiedad del objeto ListBox ItemsSource?
- 3. Enlazando con la propiedad IsSelected del elemento ListViewItem principal
- 4. vinculando un usercontrol al opuesto de una propiedad bool
- 5. objeto hacer referencia a su propia propiedad en initilization
- 6. Convertir a nombre de la propiedad objeto
- 7. vinculando a la propiedad de ancho en el código detrás de
- 8. ¿Qué es @ en una propiedad de objeto?
- 9. ¿Puede una propiedad de objeto JavaScript referirse a otra propiedad del mismo objeto?
- 10. añadir una propiedad a dinámico objeto .NET
- 11. JavaScript - funcionan como una propiedad de objeto
- 12. ¿A la propiedad, o no a la propiedad?
- 13. Vinculando propiedad de dependencia personalizada al estilo personalizado de WPF
- 14. Enlace de datos a la propiedad CLR en código subyacente
- 15. Varios guiones gráficos en una propiedad
- 16. ¿Cómo eliminar una propiedad de un objeto?
- 17. Notificar Un objeto cuando una propiedad de otro objeto cambia
- 18. eliminando una propiedad de un objeto
- 19. ¿Establecer propiedad en el objeto modelo?
- 20. ¿Cómo accedo a una propiedad de objeto con una variable de cadena que tiene el nombre de esa propiedad?
- 21. WPF enlaza la propiedad de usercontrol a la propiedad principal
- 22. Javascript propiedad de objeto cita
- 23. declarar propiedad como objeto?
- 24. Pasar la propiedad del objeto en C++
- 25. PHP - ¿Cómo cambiar el nombre de una propiedad del objeto?
- 26. Obtener la propiedad del objeto en JavaScript
- 27. Acceda a la propiedad Objective-C dinámicamente utilizando el nombre de la propiedad
- 28. Una pregunta sobre el nombre de propiedad del objeto JavaScript
- 29. vinculando a una lista de tuplas
- 30. Enlace a la propiedad estática
Esto es exactamente lo que estaba buscando. Gracias. – BrandonS
Lamentablemente, esto no funciona con WinRT ya que [los enlaces no son compatibles con Setters] (http://stackoverflow.com/a/11869065/641833). – Trisped