Comando de disparo desde botones dentro de Combobox usando MVVM Light

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>

preguntado el 22 de mayo de 12 a las 15:05

1 Respuestas

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

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.