¿Alguien puede ayudarme con lo siguiente? He estado jugando con esto pero no puedo por mi vida hacer que funcione.WPF vinculante a Listbox selectedItem
Tengo un modelo de vista que contiene las siguientes propiedades;
public ObservableCollection<Rule> Rules { get; set; }
public Rule SelectedRule { get; set; }
En mi XAML tengo;
<ListBox x:Name="lbRules" ItemsSource="{Binding Path=Rules}"
SelectedItem="{Binding Path=SelectedRule, Mode=TwoWay}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Name:" />
<TextBox x:Name="ruleName">
<TextBox.Text>
<Binding Path="Name" UpdateSourceTrigger="PropertyChanged" />
</TextBox.Text>
</TextBox>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
Ahora el ItemsSource funciona bien y me da una lista de Regla objetos con sus nombres que aparecen en lbRules.
Problema que estoy teniendo está vinculando la propiedad SelectedRule a lbRules 'SelectedItem. Intenté vincular la propiedad de texto de un bloque de texto a SelectedRule, pero siempre es nulo.
<TextBlock Text="{Binding Path=SelectedRule.Name}" />
El error que estoy viendo en la ventana de salida es: error de ruta BindingExpression: no se encontró la propiedad 'SelectedRule'.
¿Alguien me puede ayudar con este enlace? No puedo ver por qué no debería encontrar la propiedad SelectedRule.
Intenté cambiar la propiedad de texto del bloque de texto como de abajo, que funciona. El problema es que quiero usar SelectedRule en mi ViewModel.
<TextBlock Text="{Binding ElementName=lbRules, Path=SelectedItem.Name}" />
Muchas gracias por su ayuda.
Eso es todo, tonto, no había implementado la interfaz en ese modelo de vista. ¡Golpeé mi cabeza contra la pared toda la mañana en eso! Muchas gracias por su ayuda. También muchas gracias a todos los demás, especialmente a Yacoder, por tomarse el tiempo para echar un vistazo a esto. –
Gracias de mí también. Solo tenía el problema exacto. Implementé la interfaz pero olvidé plantear el evento. –