在Datagrid中获取价值关闭复选框

时间:2013-11-27 09:26:52

标签: c# wpf xaml datagrid itemsource

我想从WPF中的数据网格中获取值关闭复选框 这是我的代码 [XAML]

<DataGrid Grid.Row="0" Grid.Column="3" Name="grdModules" Width="371" AutoGenerateColumns="False" CanUserAddRows="False"
    IsReadOnly="False" CanUserDeleteRows="True" ItemsSource="{Binding}" 
    SelectionChanged="grdModules_SelectionChanged"
    Grid.ColumnSpan="2" Height="150" Margin="126,0,-45,0" Grid.RowSpan="5">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Module" Width="71" Binding="{Binding ModuleName}"></DataGridTextColumn>
        <DataGridTemplateColumn Header="Autoriser" Width="100">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox IsChecked="{Binding Autoriser, Mode=TwoWay}" ></CheckBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
            <DataGridTemplateColumn.CellEditingTemplate>
                <DataTemplate>
                    <CheckBox IsChecked="{Binding Autoriser, Mode=TwoWay}" ></CheckBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellEditingTemplate>
        </DataGridTemplateColumn>
        <DataGridTemplateColumn Header="Accès à l'administrateur" Width="100">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox IsChecked="{Binding GrantToAdmin, Mode=TwoWay}"></CheckBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
            <DataGridTemplateColumn.CellEditingTemplate>
                <DataTemplate>
                    <CheckBox IsChecked="{Binding GrantToAdmin, Mode=TwoWay}"></CheckBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellEditingTemplate>
        </DataGridTemplateColumn>
        <DataGridTemplateColumn Header="Accès à l'utilisateur" Width="100">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox IsChecked="{Binding GrantToUser, Mode=TwoWay}"></CheckBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
            <DataGridTemplateColumn.CellEditingTemplate>
                <DataTemplate>
                    <CheckBox IsChecked="{Binding GrantToUser, Mode=TwoWay}"></CheckBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellEditingTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

我的[ViewModel]

public class ModuleAccessVM : ViewModelBase
{
    [DataMember]
    public int ModuleId { get; set; }
    [DataMember]
    public string ModuleName { get; set; }
    [DataMember]
    public string ModuleDescription { get; set; }
    [DataMember]
    public bool Autoriser { get; set; }
    [DataMember]
    public bool GrantToAdmin { get; set; }
    [DataMember]
    public bool GrantToUser { get; set; }

}

请帮助我想关闭chekbox的值,当我选中并取消选中某个复选框时,我循环通过itemSource我总是从db获取默认值!!!

1 个答案:

答案 0 :(得分:1)

解决方案是你juste必须添加UpdateSourceTrigger = PropertyChanged并循环遍历网格ItemSsource -