如何修复“未处理的异常”单击WPF DataGrid时
本文关键字:单击 WPF DataGrid 异常 何修复 未处理 | 更新日期: 2023-09-27 18:06:07
我正在使用Visual Studio 2010, WPF与c# 4.0,当点击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>
默认情况下,DataGrid
单元格是可编辑的(这意味着绑定是TwoWay
)。由于绑定的集合包含具有只读属性的项,因此单击单元格时会出现异常,因为无法进行编辑。
您应该能够通过将Mode=OneWay
添加到该字段的列绑定来解决这个问题。