【问题标题】:How to fix "unhandled exception" when clicking on WPF DataGrid?单击 WPF DataGrid 时如何修复“未处理的异常”?
【发布时间】:2011-10-30 02:37:59
【问题描述】:

我正在使用 Visual Studio 2010、带有 C# 4.0 的 WPF,当单击 DataGrid 中的单元格时出现以下异常:

An unhandled exception of type 'System.InvalidOperationException' occurred in PresentationFramework.dll  Additional information: A TwoWay or OneWayToSource binding cannot work on the read-only property 'Column2' of type 'VindecoderUI.AcesData'.

这是我的代码:

    <DataGrid AutoGenerateColumns="False" Height="190" Name="nadaDataGrid" Width="304" FrozenColumnCount="1000" ItemsSource="{Binding Source={StaticResource nadaDataCollection}}" CanUserReorderColumns="False" CanUserResizeColumns="True" CanUserSortColumns="False" AlternatingRowBackground="#3F000000" CanUserResizeRows="False" SelectionMode="Single" SelectionUnit="Cell"
               SelectionChanged="dataGrid1_SelectionChanged" AreRowDetailsFrozen="True" >
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Path=NadaSeries}" Header="Nada Series" />
            <DataGridTextColumn Binding="{Binding Path=NadaBS}" Header="Nada BS" />
            <DataGridTextColumn Binding="{Binding Path=MSRP}" Header="MSRP" />
            <DataGridTextColumn Binding="{Binding Path=GVWR}" Header="GVWR" />
            <DataGridTextColumn Binding="{Binding Path=GCWR}" Header="GCWR" />
        </DataGrid.Columns>
    </DataGrid>

    <Window.Resources>
    <CollectionViewSource x:Key="nadaDataCollection"></CollectionViewSource>
    <CollectionViewSource x:Key="acesDataCollection"></CollectionViewSource>
</Window.Resources>

【问题讨论】:

    标签: c# wpf c#-4.0 wpf-controls


    【解决方案1】:

    默认情况下,DataGrid 单元格是可编辑的(这意味着绑定是 TwoWay。)由于您正在绑定一个包含具有只读属性的项目的集合,因此当您单击单元格时会出现异常,因为无法编辑。

    您应该能够通过将Mode=OneWay 添加到该字段的列绑定来解决此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-02
      相关资源
      最近更新 更多