即时通讯使用WPFToolkit的DataGrid,我试图让编辑按钮正常工作,这里是专栏:
<my:DataGridTemplateColumn>
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock>
<Hyperlink Command="{Binding EditVenueCommand}" >Edit</Hyperlink>
</TextBlock>
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
我收到以下错误:
BindingExpression路径错误:'object'''Venue'(HashCode = 18626439)'上找不到'EditVenueCommand'属性。 BindingExpression:路径= EditVenueCommand; DataItem ='Venue'(HashCode = 18626439); target元素是'Hyperlink'(HashCode = 32883419); target属性是'Command'(类型'ICommand')
当EditVenueCommand位于网格之外时,它将完美地启动。
另外,我使用DataGridTemplateColumn而不是DataGridHyperlinkColumn的原因是因为我无法使其工作:(
答案 0 :(得分:1)
您的代码中发生的事情是绑定将“EditVenueCommand”视为应在数据模板的datacontext上找到的属性。
你真的不应该使用Binding来连接命令,只需使用指定命名空间+类型+命令字段,如下所示:
Command="myns:MyType.EditVenueCommand"
myns映射到CLR命名空间的位置。例如:
<Window xmlns:myns="clr-namespace:MyNamespace;assembly=MyAssemblyName" ...