我有DataGrid
ItemsSource
设置为ObservableCollection<ObservablePuls>
。
在上一栏中,我有一个按钮,我想将CommandParameter
绑定到ObservablePuls
。使用此代码,我将null作为CommandParameter
传递,并出现此错误:
BindingExpression路径错误:&#39; DataContext&#39;找不到物业 &#39;对象&#39; &#39;&#39; ObservablePuls&#39; (的HashCode = 40133923)&#39 ;. BindingExpression:路径= DataContext的;的DataItem =&#39; ObservablePuls&#39; (的HashCode = 40133923);目标元素是&#39;按钮&#39; (名称=&#39;&#39);目标 属性是&#39; CommandParameter&#39; (键入&#39;对象&#39;)
所以这是我的问题:如何传递作为行源的对象?
以下是带有按钮的DataGrid
代码(省略其他列):
<DataGrid x:Name="PulsesDataGrid"
Grid.Row="1"
ItemsSource="{Binding ObservableUser.Pulses}"
CanUserAddRows="False"
CanUserSortColumns="True"
AutoGenerateColumns="False"
materialDesign:DataGridAssist.CellPadding="13 8 8 8"
materialDesign:DataGridAssist.ColumnHeaderPadding="8"
CanUserDeleteRows="False"
CanUserReorderColumns="True"
HorizontalAlignment="Stretch">
<DataGrid.Columns>
//... Other columns here
<DataGridTemplateColumn Header="">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Style="{StaticResource MaterialDesignToolButton}"
Margin="10 0 0 0"
Command="{Binding ElementName=PulsesDataGrid, Path=DataContext.DeleteRowInDataGrid}"
CommandParameter="{Binding Path=DataContext}">
<materialDesign:PackIcon Kind="DeleteForever" />
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
绑定Command
很好,因为它是用null参数调用的;(
答案 0 :(得分:1)
您可以使用以下命令将DataTemplate中的当前DataContext(这是行中显示的元素)绑定到CommandParameter:
CommandParameter="{Binding}"