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 FUNCIONE private 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.

