実行時にDataTableをWPF DataGridにバインドしようとしています。コードは次のようになります。System.Windows.Dataエラー:17:RowNotInTableException
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>
新しい行を挿入して更新することは問題ありません。私は二回ESCキーを押して、新しい行を追加し中止しようとすると、ビット、私は(唯一のイミディエイトウィンドウに)次のエラーを取得する:
System.Windows.Data Error: 17 : Cannot get 'OK' value (type 'Boolean') from '' (type 'DataRowView'). BindingExpression:Path=OK; DataItem='DataRowView' (HashCode=26031876); target element is 'CheckBox' (Name=''); target property is 'IsChecked' (type 'Nullable`1') RowNotInTableException:'System.Data.RowNotInTableException: Diese Zeile wurde aus einer Tabelle entfernt und enthält keine Daten. BeginEdit() ermöglicht das Erstellen von neuen Daten in dieser Zeile.
は、なぜ私はこのエラーが出るんし、どのように私は取り除くことができますそれ?私は話題について広範な調査をしたが、結論に至らなかった。
提案のように振る舞いを無効にすると、実際にはエラーが表示されなくなります。しかし、私はもはやセルの編集も行の追加も中断することができません。したがって、それは解決策ではありません...もちろん、私はエラーを無視することができますが、私はそれが迷惑なとそれを取り除くことが本当に好きです。 –
それは私が何を意味するか。 *無害で、あなたのコードと関係がないため、この例外については気にしないでください。あなたはもっと重要なことに集中すべきです:) – mm8