Domanda

Sto usando il DataGrid di WPFToolkit e sto cercando di far funzionare un pulsante di modifica, ecco la colonna:

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


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

e visualizzo il seguente errore:

Errore percorso BindingExpression: proprietà 'EditVenueCommand' non trovata su 'oggetto' '' Venue '(HashCode = 18626439)'. BindingExpression: Path = EditVenueCommand; DataItem = 'Venue' (HashCode = 18626439); l'elemento target è 'Hyperlink' (HashCode = 32883419); la proprietà target è 'Command' (digitare 'ICommand')

EditVenueCommand si attiva perfettamente quando si trova all'esterno della griglia.

inoltre, il motivo per cui sto usando un DataGridTemplateColumn anziché un DataGridHyperlinkColumn è perché non sono riuscito a farlo funzionare neanche :(

È stato utile?

Soluzione

Ciò che sta accadendo nel tuo codice è che l'associazione sta trattando " EditVenueCommand " come proprietà che dovrebbe trovare nel datacontext del modello di dati.

In realtà non dovresti usare un Binding per agganciare un comando comunque, basta specificare lo spazio dei nomi + tipo + campo comando in questo modo:

Command="myns:MyType.EditVenueCommand"

Dove myns è mappato al tuo spazio dei nomi CLR. Ad esempio:

<Window xmlns:myns="clr-namespace:MyNamespace;assembly=MyAssemblyName" ...
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top