WPFToolkit DataGridTemplateColumnのコマンドが機能しない
-
05-07-2019 - |
質問
WPFToolkitのDataGridを使用していて、編集ボタンを機能させようとしています。ここに列があります:
<my:DataGridTemplateColumn>
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock>
<Hyperlink Command="{Binding EditVenueCommand}" >Edit</Hyperlink>
</TextBlock>
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
次のエラーが表示されます:
BindingExpressionパスエラー: 'EditVenueCommand'プロパティが 'object' '' Venue '(HashCode = 18626439)'で見つかりません。 BindingExpression:Path = EditVenueCommand; DataItem = 'Venue'(HashCode = 18626439);ターゲット要素は 'Hyperlink'(HashCode = 32883419)です。ターゲットプロパティは 'Command'(タイプ 'ICommand')
EditVenueCommandは、グリッドの外側にあるときに完全に起動します。
また、DataGridHyperlinkColumnの代わりにDataGridTemplateColumnを使用している理由は、それを動作させることができなかったためです:(
解決
コードで起こっていることは、バインディングが&quot; EditVenueCommand&quot;を処理していることです。データテンプレートのデータコンテキストで見つける必要があるプロパティとして。
とにかくコマンドを接続するためにバインディングを使用するべきではありません。次のように名前空間+タイプ+コマンドフィールドを指定するだけです:
Command="myns:MyType.EditVenueCommand"
mynsがCLR名前空間にマップされる場所。例:
<Window xmlns:myns="clr-namespace:MyNamespace;assembly=MyAssemblyName" ...
所属していません StackOverflow