我有一个网格,取消选中/检查标题行中的框在所有行的此列的框中的每一行上都是相同的。该列未绑定到视图模型,使用从此处获取的实现:http://www.devexpress.com/Support/Center/p/E1263.aspx
这是带有复选框的列的标记。这会创建一个框用户点击将该行标记为已签名:
<dxg:GridColumn FieldName="UnboundCheck" Header="SignOff" UnboundType="Boolean" Width="85px" Visible="True" >
<dxg:GridColumn.HeaderTemplate>
<DataTemplate>
<dxe:CheckEdit Content="{Binding}" Checked="CheckEdit_Checked" Unchecked="CheckEdit_Unchecked"/>
</DataTemplate>
</dxg:GridColumn.HeaderTemplate>
</dxg:GridColumn>
用户还可以单击每个复选框,但是首先需要检查用户权限。我需要在每一行上根据另一列设置IsEnabled,该列指示用户是否有权勾选该框。我尝试将CellTemplate
添加到GrideColumn,并使用这样的绑定:
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<dxe:CheckEdit Content=" hi" IsEnabled="{Binding CanBeSignedOff,RelativeSource={RelativeSource TemplatedParent},diag:PresentationTraceSources.TraceLevel=High}" />
</DataTemplate>
</dxg:GridColumn.CellTemplate>
但绑定无效,错误消息:
System.Windows.Data Error: 40 : BindingExpression path error: 'CanBeSignedOff' property not found on 'object' ''CellEditor' (Name='PART_CellEditor')'. BindingExpression:Path=CanBeSignedOff; DataItem='CellEditor' (Name='PART_CellEditor'); target element is 'CheckEdit' (Name=''); target property is 'IsEnabled' (type 'Boolean')
我也尝试过:
{Binding CanBeSignedOff,RelativeSource={RelativeSource AncestorType={x:Type dxg:GridRow}}
但是得到了“'对象'''GridRow'上找不到属性的路径错误”
当色谱柱无界时,是否可以在细胞上使用结合?
答案 0 :(得分:2)
更改
<dxe:CheckEdit Content=" hi" IsEnabled="{Binding CanBeSignedOff,RelativeSource={RelativeSource TemplatedParent},diag:PresentationTraceSources.TraceLevel=High}" /
到
<dxe:CheckEdit Content=" hi" IsEnabled="{Binding DataContext.CanBeSignedOff,RelativeSource={RelativeSource TemplatedParent},diag:PresentationTraceSources.TraceLevel=High}" /
或
<dxe:CheckEdit Content=" hi" IsEnabled="{Binding DataContext.RowData.Row.CanBeSignedOff,RelativeSource={RelativeSource TemplatedParent},diag:PresentationTraceSources.TraceLevel=High}" /