C# System.Windows.Data错误:17:RowNotInTableException
我试图在运行时将DataTable绑定到WPF DataGrid。代码如下所示:C# System.Windows.Data错误:17:RowNotInTableException,c#,wpf,data-binding,C#,Wpf,Data Binding,我试图在运行时将DataTable绑定到WPF DataGrid。代码如下所示: DataTable c_tblData; public MainWindow() { InitializeComponent(); c_tblData = new DataTable("tblData"); c_tblData.Columns.Add("Id", typeof(int)); c_tblData.Columns.Add("Description", typeof(st
DataTable c_tblData;
public MainWindow()
{
InitializeComponent();
c_tblData = new DataTable("tblData");
c_tblData.Columns.Add("Id", typeof(int));
c_tblData.Columns.Add("Description", typeof(string));
c_tblData.Columns.Add("OK", typeof(bool));
dgrData.ItemsSource = c_tblData.DefaultView;
}
我没有其他代码。XAML也非常简单:
<Window x:Class="Test_DataGrid.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Test_DataGrid"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid Name="dgrData" />
</Grid>
</Window>
为什么我会出现这个错误,我如何才能消除它?我对这个话题做了广泛的搜索,但没有得出结论。你可以放心地忽略这个例外。它是无害的,已经为你处理过了 当您尝试对不在
DataTable
中的DataRow
执行操作,但无法真正控制DataGrid
控件向DataTable
添加或删除行的方式和时间时,会引发异常,除非您以某种方式覆盖ESC
按键的行为:
private void dgrData_PreviewKeyDown(object sender, KeyEventArgs e)
{
e.Handled = e.Key == Key.Escape;
}
但实际上没有必要这样做。您可以放心地忽略此异常。它是无害的,已经为你处理过了 当您尝试对不在
DataTable
中的DataRow
执行操作,但无法真正控制DataGrid
控件向DataTable
添加或删除行的方式和时间时,会引发异常,除非您以某种方式覆盖ESC
按键的行为:
private void dgrData_PreviewKeyDown(object sender, KeyEventArgs e)
{
e.Handled = e.Key == Key.Escape;
}
但实际上没有必要这样做。覆盖建议中的行为实际上可以防止出现错误。但是:我不能再中止单元格编辑或行添加。因此,这不是解决方案。。。当然我可以忽略这个错误,但我觉得它很烦人,我真的很想摆脱它。这就是我的意思。不要担心这个异常,因为它是无害的,与您的代码没有任何关系。你应该关注更重要的事情:)在你的建议中覆盖行为实际上可以防止错误的出现。但是:我不能再中止单元格编辑或行添加。因此,这不是解决方案。。。当然我可以忽略这个错误,但我觉得它很烦人,我真的很想摆脱它。这就是我的意思。不要担心这个异常,因为它是无害的,与您的代码没有任何关系。你应该关注更重要的事情:)