はコマンドを直接XmlDataSource
サポートしていないため、 XML ドキュメントを手動で操作する必要があります。Delete
ページでこれを処理するには、少なくとも 2 つの方法があります。
CommandName
ボタンの をデフォルトでは存在しないコマンドに変更し、ListView のItemCommand
イベント ハンドラで XML 編集を行います。ItemCommand
イベント ハンドラーのイベント引数は、ボタンに設定した値に設定されるプロパティをListViewCommandEventArgs
持つ型です。CommandName
- ボタンを のままに
CommandName="Delete"
し、ItemDeleting
イベントをキャンセルする必要がある場合 (コントロールを呼び出さないようDelete
にするXmlDataSource
ため、すでに見たように動作しません)。次に、ここで XML 編集を行います。
削除機能を実際に実装する限り、分離コードで XML を手動で編集する必要があります。MSDN の XmlDataSource クラス ドキュメントから:
XML データの更新
XmlDataSource コントロールは、データ バインド コントロールが XML データを表示する読み取り専用データ シナリオでよく使用されます。ただし、XmlDataSource コントロールを使用して XML データを編集することもできます。XML データを編集するには、GetXmlDocument メソッドを呼び出して、XML データのメモリ内表現である XmlDataDocument オブジェクトを取得します。XmlDataDocument およびそれに含まれる XmlNode オブジェクトによって公開されるオブジェクト モデルを使用するか、XPath フィルター式を使用してドキュメント内のデータを操作できます。XML データのメモリ内表現を変更したら、Save メソッドを呼び出してディスクに保存できます。
XmlDataSource コントロールの編集機能にはいくつかの制限があります。
- XML データは、Data プロパティで指定されたインライン XML からではなく、DataFile プロパティで示される XML ファイルからロードする必要があります。
- Transform または TransformFile プロパティで XSLT 変換を指定することはできません。
- Save メソッドは、異なる要求による同時保存操作を処理しません。複数のユーザーが XmlDataSource を介して XML ファイルを編集している場合、すべてのユーザーが同じデータを操作しているという保証はありません。これらの同時実行の問題が原因で、保存操作が失敗する可能性もあります。