ヘッダー行のチェックボックスをオフ/チェックすると、すべての行のこの列のボックスのすべての行で同じことが行われるグリッドがあります。ここから取得した実装を使用して、列はビュー モデルにバインドされていません: 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」にプロパティが見つかりません」というパスエラーが発生しました
列が無制限の場合、セルにバインドを使用できますか?