Pregunta

Estoy usando el DataGrid de WPFToolkit y estoy intentando que funcione un botón de edición, aquí está la columna:

<my:DataGridTemplateColumn>
                    <my:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock>
                                <Hyperlink   Command="{Binding EditVenueCommand}" >Edit</Hyperlink>


                            </TextBlock>
                        </DataTemplate>
                    </my:DataGridTemplateColumn.CellTemplate>
                </my:DataGridTemplateColumn>

y me aparece el siguiente error:

Error de ruta de BindingExpression: la propiedad 'EditVenueCommand' no se encuentra en 'objeto' '' Lugar '(HashCode = 18626439)'. BindingExpression: Path = EditVenueCommand; DataItem = 'Venue' (HashCode = 18626439); el elemento objetivo es 'Hipervínculo' (HashCode = 32883419); la propiedad de destino es 'Comando' (escriba 'ICommand')

EditVenueCommand se está disparando a la perfección cuando está fuera de la red.

también, la razón por la que estoy usando un DataGridTemplateColumn en lugar de un DataGridHyperlinkColumn es porque no pude hacer que funcionara :(

¿Fue útil?

Solución

Lo que está sucediendo en tu código es que el enlace se está tratando con " EditVenueCommand " como una propiedad que debería encontrar en el contexto de datos de la plantilla de datos.

Realmente no deberías usar un Enlace para conectar un comando de todos modos, solo usa el campo de comando para especificar el espacio de nombres + tipo + así:

Command="myns:MyType.EditVenueCommand"

Donde myns se asigna a su espacio de nombres CLR. Por ejemplo:

<Window xmlns:myns="clr-namespace:MyNamespace;assembly=MyAssemblyName" ...
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top