Comando de disparo desde botones dentro de Combobox usando MVVM Light
Frecuentes
Visto 1,230 veces
2
Tengo un problema con los eventos de activación de un ComboxBox personalizado. La idea es tener el cuadro combinado vinculado a una colección de elementos con un botón Editar y Eliminar en línea con cada elemento. Puedo hacer que el evento de clic funcione usando el código subyacente, pero el enlace del comando parece no hacer nada.
<ComboBox SelectedIndex="0">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}"/>
<StackPanel Grid.Column="1"
Orientation="Horizontal"
HorizontalAlignment="Right">
<Button Content="Edit"
Margin="0,0,5,0"
Command="{Binding EditConnectionCommand}"
CommandParameter="{Binding ID}"/>
<Button Content="Delete"
Command="{Binding DeleteConnectionCommand}"
CommandParameter="{Binding ID}"/>
</StackPanel>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
<ComboBox.ItemsSource>
<CompositeCollection>
<ComboBoxItem IsEnabled="False" Visibility="Collapsed">Select a database connection...</ComboBoxItem>
<CollectionContainer Collection="{Binding Source={StaticResource ConnectionsBridge}}" />
<ComboBoxItem>...New Connection...</ComboBoxItem>
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
1 Respuestas
3
Su enlace busca los comandos en los elementos, no en el ViewModel de la ventana.
Para cambiar esto, arregle su enlace de esta manera:
{Binding ElementName=root, Path=DataContext.EditConnectionCommand}
Para que esto funcione, debe agregar Name="root"
para usted UserControl
or Window
.
contestado el 22 de mayo de 12 a las 16:05