我有一個網格,其中取消選中/選中標題行中的框對所有行上的此列中的每一行執行相同操作。該列對視圖模型解除綁定,使用從此處獲取的實現:http://www.devexpress.com/Support/Center/p/E1263.aspxWPF綁定IsEnabled爲未綁定複選框?
以下是帶有複選框的列的標記。這將創建一個盒子用戶在點擊標記行作爲簽署過:
<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'」的路徑錯誤「
它是pos當列是無限的時候可以使用綁定的單元格嗎?
你能否告訴我們後面的代碼與類和你正在做數據綁定到屬性? – l46kok 2013-02-26 16:01:39
這不會起作用,因爲'RelativeSource'源代碼綁定到UI元素。你需要的是綁定到數據元素。檢查我的答案。 – 2013-02-26 16:09:20