質問
VS#でC#およびDSLツールを使用しています。
一部のデータを変更するためにトランザクションを作成する必要がありますが、VS2005のUNDOリストに表示されないように、ユーザーから非表示にする必要があります。
UndoManagerを無効にしてみました
store.UndoManager.UndoState = UndoState.Disabled;
ただし、無効にすると、元に戻すリスト内の既存のすべてのアクションがクリアされます。
トランザクションには、「isHidden」というプロパティがあります。しかし、それは読み取り専用です私はどのように非表示に設定できるかわかりません。 また、新しいUndoManagerを作成しようとしましたが、読み取り専用プロパティでもあります...
元に戻すリストに表示されないトランザクションを作成するにはどうすればよいですか?
疑問点を明確にするために、さらに詳細を書いていただければ幸いです。 どうもありがとうございました、 Luí s Filipe
[追加]
iは、プロパティ値に基づいてすべての図形の背景をペイントします。たとえば、真の場合は緑、偽の場合は赤。図形の背景をペイントするためにトランザクションを開く必要がありますが、私にとっては、計算された(読み取り専用)プロパティとして動作します。
解決
store.UndoManager.UndoState = UndoState.Disabled
;
あなたが望むものにはほぼ正しい
store.UndoManager.UndoState = UndoState.DisabledNoFlush;
これは、残りの取り消しリストをクリアしません:)ランチルイスのcyas。
他のヒント
あなたの質問に対する正確な答えはありませんが、...本当に必要ですか?モデル内の一部のデータを変更する必要がある場合のほとんどは、モデル内の他の変更に対応するためです。その場合は、ルールを使用して調査して、コミットする前に変更を引き起こすルールのコンテキスト内で既存のトランザクションを取得し、最初に新しいトランザクションを作成する必要がないようにします。