如何在使用C#的WPF中单击按钮时取消选中CheckBox?

时间:2013-05-28 05:09:07

标签: c# wpf checkbox wpf-controls devexpress

我在GridControl列中有一个CheckBox。 执行某些操作后,GridControl中的选定复选框必须在WPF按钮单击时取消选中。有什么想法吗?

<dxg:GridControl Name="grdInfill"  Height="700" VerticalAlignment="Center">
    <dxg:GridControl.Columns>
        <dxg:GridColumn  AllowEditing="True">
            <dxg:GridColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox Name="chkSelect"  HorizontalAlignment="Center" 
                        IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=GlassType}"  
                        Checked="CheckEdit_Checked" 
                        Unchecked="CheckEdit_Unchecked" />
                 </DataTemplate>
             </dxg:GridColumn.CellTemplate>
         </dxg:GridColumn>
     </dxg:GridControl.Columns>
     <dxg:GridControl.View>
         <dxg:TableView Name="grdInfillInner"  ShowTotalSummary="True" AutoWidth="True" 
             DetailHeaderContent="True"  ShowIndicator="False" ShowGroupPanel="False" 
             CellValueChanging="grdInfillInner_CellValueChanging">
             <!--GroupRowTemplate="{StaticResource descriptionHeader}"-->
         </dxg:TableView>
     </dxg:GridControl.View>
</dxg:GridControl>
<Button Name="BtnClearAllCheckbox" Content="Clear All Checkbox" Height="20" Width="80" />

帮助感谢!

2 个答案:

答案 0 :(得分:1)

请尝试以下.......

 <CheckBox Name="chkSelect"  HorizontalAlignment="Center" IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=GlassType,Mode=TwoWay}"

我猜应该有属性“GlassType”

Public Bool GlassType {get;set;}

绑定时使用TwoWay模式,并将属性值GlassType设置为True false ....

答案 1 :(得分:0)

Uid

提供checkbox
<CheckBox Uid="CheckAll" />

使用此扩展方法查找dataTemplate ---&gt;

中的元素
public static UIElement FindUid(this DependencyObject parent, string uid)
{
    var count = VisualTreeHelper.GetChildrenCount(parent);
    if (count == 0) return null;

    for (int i = 0; i < count; i++)
    {
        var el = VisualTreeHelper.GetChild(parent, i) as UIElement;
        if (el == null) continue;

        if (el.Uid == uid) return el;

        el = el.FindUid(uid);
        if (el != null) return el;
    }
    return null;
}

像这样

在后面的代码中访问CheckBox
CheckBox checkBox = myDataGrid.FindUid("chkSelect") as CheckBox;