Befehl in einem WPFToolkit Datagridtemplatecolumn nicht funktioniert
-
05-07-2019 - |
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: (
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" ...