Pergunta

im usando DataGrid do WPFToolkit e im tentando obter um trabalho editar botão, aqui está a coluna:

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


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

e eu estou recebendo o seguinte erro:

BindingExpression erro caminho: 'EditVenueCommand' propriedade não encontrado na 'objeto' '' Local '(HashCode = 18626439)'. BindingExpression: Path = EditVenueCommand; DataItem = 'Local' (HashCode = 18626439); elemento alvo é 'hiperligação' (HashCode = 32883419); propriedade de destino é 'Command' (tipo 'ICommand')

o EditVenueCommand é fireing perfeitamente quando ele está fora da grade.

Além disso, a razão pela qual eu estou usando um DataGridTemplateColumn em vez de um DataGridHyperlinkColumn é porque eu não poderia chegar a esse trabalho ou: (

Foi útil?

Solução

O que está acontecendo em seu código é que a ligação está tratando "EditVenueCommand" como uma propriedade que deve encontrar na datacontext do modelo de dados.

Você realmente não deve usar uma ligação para ligar um comando de qualquer maneira, é só usar especificar a + tipo de campo comando namespace + assim:

Command="myns:MyType.EditVenueCommand"

Onde myns é mapeado para o namespace CLR. Por exemplo:

<Window xmlns:myns="clr-namespace:MyNamespace;assembly=MyAssemblyName" ...
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top