1

我想从 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>

我的 [视图模型]

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; }

}

请帮助我想从选中的复选框中获取值,当我选中和取消选中某个复选框并循环遍历 itemSource 时,我总是从数据库中获取默认值!!!

4

1 回答 1

1

解决方案是您只需添加 UpdateSourceTrigger=PropertyChanged 并循环遍历网格 ItemSource –

于 2013-11-27T09:53:34.943 回答