このようなことが起こります。私はデータを編集するために2つのデータグリッドを持っています。 1つは文字列の配列を編集し、2つ目は複数のデータフィールドを含むオブジェクトの配列を編集します(基本的にはある種の行列です)。編集中のDataGridがフォーカスを失うとsilverlightがクラッシュする
何らかの理由で、特定のセルを編集するための最初のデータグリッド(文字列の配列)をクリックしたときに、編集を終了するためにデータグリッドの外側にある別の場所(例:ボタン)をクリックすると、 Chrome(またはIE)がクラッシュします。 VSでデバッグモードでアプリを実行しても、エラーはスローされませんでした。
誰でもこのバグを捜す方法を知っていますか? MainPage.xaml.csで
<sdk:DataGrid AutoGenerateColumns="True" Canvas.Left="14" Canvas.Top="88" Height="165" Name="ObjectsGrid" Width="196" KeyDown="ObjectsGrid_KeyDown" CellEditEnding="ObjectsGrid_CellEditEnding">
:
MainPage.xamlを中private void ObjectsGrid_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Delete)
{
if (ObjectsGrid.SelectedItem != null)
{
ArrayOfString s = (ArrayOfString)ObjectsGrid.ItemsSource;
s.Remove((String)ObjectsGrid.SelectedItem);
ObjectsGrid.ItemsSource = null;
ObjectsGrid.ItemsSource = s;
}
}
}
private void ObjectsGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
DataGrid tGrid = (DataGrid)sender;
String c = ((TextBox)e.EditingElement).Text;
HashtableCollection[_currentCorrespondingItem].DataBoundObject[tGrid.SelectedIndex] = c;
}
、これが失敗しています。
btw - 編集モードを終了した後にフィールドを編集すると、画面全体が空白になることがあります。実装に関する少しの情報で、最初のDataGrid(文字列の配列)でCellEditEndingイベントを実装し、2番目のDataGridでRowEditEndingイベントを実装しました。 – user367696