所以这就是密码-
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Grid.Column="1" >
<Button Command="{Binding OpenWindowCommand}">
<Image Source="{StaticResource IconImage}" Width="20" Height="20" />
</Button>
</Grid>
...
运行时出现此错误。
系统窗口数据错误:40:绑定表达式路径错误:在“对象”“字符串”(哈希代码=1217782553)“上找不到”OpenWindowCommand“属性。绑定表达式:路径=OpenWindowCommand;数据项=“字符串”(哈希代码=1217782553);目标元素为'Button'(名称='');目标属性为“Command”(类型为“ICommand”)
系统窗口数据信息:20:由于缺少信息,BindingExpression无法检索值。BindingExpression:路径=OpenWindowCommand;数据项=“字符串”(哈希代码=1217782553);目标元素为'Button'(名称='');目标属性为“Command”(类型为“ICommand”)
系统窗口数据信息:21:BindingExpression无法从Null数据项检索值。当绑定被分离或绑定到没有值的可为Null的类型时,可能会发生这种情况。BindingExpression:Path=OpenWindowCommand;数据项=“字符串”(哈希代码=1217782553);目标元素为'Button'(名称='');目标属性为“Command”(类型为“ICommand”)
系统窗口数据信息:10:无法使用绑定检索值,并且不存在有效的回退值;使用默认值。绑定表达式:路径=OpenWindowCommand;数据项=“字符串”(哈希代码=1217782553);目标元素为'Button'(名称='');目标属性为“Command”(类型为“ICommand”)
我有
public ICommand OpenWindowCommand
{
get
{
...
}
}
在ViewModel类中,但确定为什么会发生。
我知道同样的问题也有答案,但我不能让它为按钮工作。
1条答案
按热度按时间bqucvtff1#
您的绑定位于错误的DataContext中。您可以通过在绑定中使用“ElementName”或“RelativeSource”来指定DataContext: