私が書いた DataGrid の何が問題なのかわかりません。内容は正しく表示されますが、OnSelectionChanged イベント ハンドラを追加しようとすると、奇妙なことが起こります。助けてください!
まず、以下は問題ありません。
<DataGrid ItemsSource="{Binding XPath=services/service}" AutoGenerateColumns="False" Padding="2">
<DataGrid.Columns>
<DataGridTextColumn Header=" Service Name " Binding="{Binding XPath=name}" Width="300"/>
<DataGridTextColumn Header=" Status " Binding="{Binding XPath=status}" />
</DataGrid.Columns>
</DataGrid>
ここで services/service は私の外部 XML ファイルからのものです。ドキュメントで XmlDataProvider リソースを使用しました。その XML では、いくつかの「services」タグに多くの「service」子要素があります。一部の「services」タグには子がまったくありません(これが問題の原因かどうか疑問に思っています)。
したがって、結果の UI は、すべての行と列を含むデータグリッドの一部です。一部のデータグリッドはヘッダーのみを表示します。
今、私はこれを追加します:
<DataGrid ItemsSource="{Binding XPath=services/service}" AutoGenerateColumns="False" Padding="2"
SelectionChanged="DataGrid_SelectionChanged">
そして、コードに空のメソッドを入れます:
private void DataGrid_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
}
実行すると、例外がスローされます
System.NullReferenceException が処理されませんでした Message=オブジェクト参照がオブジェクトのインスタンスに設定されていません。ソース = ForeFront サポート モニター 2 StackTrace: h:\Personal\Visual Studio 2010\Projects\ForeFront サポート モニター 2\ForeFront サポート モニター 2 の FSM.MainWindow.System.Windows.Markup.IStyleConnector.Connect(Int32 connectionId, Object target) \MainWindow.xaml: System.Windows.FrameworkTemplate.LoadTemplateXaml(XamlReader templateReader, XamlObjectWriter currentWriter) の 42 行目 System.Windows.FrameworkTemplate.LoadTemplateXaml(XamlObjectWriter objectWriter) の System.Windows.FrameworkTemplate.LoadOptimizedTemplateContent(DependencyObject コンテナー、IComponentConnector componentConnector、IStyleConnector)スタイルコネクタ、リスト
1 affectedChildren, UncommonField
1 templatedNonFeChildrenField) System.Windows.FrameworkTemplate.LoadContent (DependencyObject コンテナー、List'1 modifiedChildren) で...