Frage

Im den WPFToolkit des Datagrid und im mit versuchen, eine Schaltfläche Bearbeiten Funktion zu erhalten, hier ist die Spalte:

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


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

und ich erhalte den folgenden Fehler:

Bindingpfadfehler: 'EditVenueCommand' Eigenschaft nicht auf 'Objekt' '' Ort '(HashCode = 18626439)' gefunden. Binding: Path = EditVenueCommand; DataItem = 'Ort' (HashCode = 18.626.439); Zielelement 'Hyperlink' (HashCode = 32.883.419); Zieleigenschaft ist 'Command' (Typ 'ICommand')

die EditVenueCommand ist fireing perfekt, wenn es außerhalb des Gitters ist.

auch der Grund, warum ich eine Datagridtemplatecolumn anstelle eines DataGridHyperlinkColumn verwende ist, weil ich das bekommen könnte nicht funktionieren: (

War es hilfreich?

Lösung

Was passiert in Ihrem Code ist, dass die Bindung „EditVenueCommand“ als Eigenschaft ist die Behandlung, die sie auf dem Datacontext der Datenvorlage finden sollten.

Sie sollten wirklich nicht eine Bindung verwenden, um einen Befehl ohnehin zu anschließen, verwenden Sie einfach den Namespace angeben + Art + Befehlsfeld wie folgt:

Command="myns:MyType.EditVenueCommand"

Wo myns auf Ihre CLR-Namespace zugeordnet ist. Zum Beispiel:

<Window xmlns:myns="clr-namespace:MyNamespace;assembly=MyAssemblyName" ...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top