WPF DataGrid CheckBoxColumn绑定模式= TwoWay错误

时间:2015-09-15 10:10:57

标签: c# wpf datagrid

这是我的代码

<DataGrid.Columns>
    <DataGridTemplateColumn Header="" Width="30" IsReadOnly="False">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <CheckBox  IsChecked="{Binding Path = chk, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
        <DataGridTemplateColumn.CellStyle>
            <Style TargetType="{x:Type DataGridCell}">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type DataGridCell}">
                            <Grid Background="{TemplateBinding Background}">
                                <ContentPresenter VerticalAlignment="Center"
                          HorizontalAlignment="Center" />
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </DataGridTemplateColumn.CellStyle>
    </DataGridTemplateColumn>

我有一个例外 绑定类型为TwoWay OneWayToSource或无法使用只读属性“chk”类型“System.Data.DataRowView”。

当我做模式= OneWay时,一切都很好。但我需要更改目标对象和源对象

1 个答案:

答案 0 :(得分:1)

您绑定到ComboBox的属性“chk”没有实现“set”,因此它只被认为是re​​adonly。实现set并调用INotifyPropertyChanged接口以通知属性中的更改。