Espero que todo les vaya bien !!
Bueno, verán, tengo una pequeña aplicación XAML en Windows, en la cual le he metido una propiedad de tipo ObservableCollection.
Ok, por code-behind, si enlazo el ListBox con mi propiedad, funciona perfecto, la enlaza, refleja los cambios, muestra los elementos y todo perfecto.
Pues bien, quiero hacer exactamente lo mismo, pero directamente desde XAML. Sin necesidad de usar el codeBehind.
Conozco el tag: ObjectDataProvider, pero creo que eso es para crear instancias nuevas, y lo que yo necesito es enlazar mi ListBox, con una propiedad de mi propia ventana.... en fin, espero haberme explicado.
CODIGO
Código:
XAML QUE INTENTO QUE ME FUNCIONEprivate System.Collections.ObjectModel.ObservableCollection<ClsPersona> _listaPersonas = null; public System.Collections.ObjectModel.ObservableCollection<ClsPersona> ListaPersonas { get { if(_listaPersonas == null) _listaPersonas = new System.Collections.ObjectModel.ObservableCollection<ClsPersona>(); return _listaPersonas; } set { _listaPersonas = value; } } private void Window_Loaded(object sender, RoutedEventArgs e) { ListaPersonas.Add(new ClsPersona { CodPersona = 1, NombrePersona = "Carlos", ApellidosPersona = "Hevia Colinas" }); ListaPersonas.Add(new ClsPersona { CodPersona = 2, NombrePersona = "sadfsdf", ApellidosPersona = "bnmbnmb ertret" }); //Si descomento la línea, se enlaza perfectamente. //lbElementos.ItemsSource = ListaPersonas; }
Código:
En fin, si alguien sabe como puedo solucionar el problema, se lo agradecería enormemente.... jejeje.<ListBox Name="lbElementos" ItemsSource="{Binding Path=ListaPersonas}" Margin="0,0,0,46"> <ListBox.ItemTemplate> <DataTemplate> <ItemsControl> <Label Content="{Binding Path=NombrePersona}" /> </ItemsControl> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
Saludos amigos.