2016-06-23 4 views
0

開発チーム用のVisual Studio拡張機能(VSIXソリューション)を作成しています。ユーザーが拡張機能をアクティブにすると、非常に単純なWPFウィンドウであるフォームが表示されます。ウィンドウは以下のコードを使用してロードされる:これは開き、ユーザが埋めることフォームを表示WPFウィンドウのテキストボックス - テキストが異なるウィンドウに影響を及ぼす

var myWindow = new SomeWpfWindow(myArgs) 
{ 
    Owner = Application.Current.MainWindow 
}; 
myWindow.Show(); 

形態はのDataContextに結合する2ウェイを受けるテキストボックスの多くを有します。あまりにも普通ではありません。

まあ、別にテキストボックスの挙動から....

私はテキストボックスに文字を入力

(「何とか何とか何とか」)その後、私は、テキストボックスに表示されたこれらの文字を見て、彼らはまたに書き込まれますバインドされているDataContextプロパティ

ただし、バックスペースまたは削除ボタンを押すと、TextBoxのテキストは変更されず、ウィンドウの後ろ(この場合はアクティブなコードファイル)が編集されます。理想的な動作ではありません。

私はこれを.Show()ではなく.ShowDialog()を使用して修正しましたが、正しい修正か、問題を埋めるだけですか?

おかげ

+0

ご注意:アクティブなドキュメントのタブを開いてコードウィンドウである場合(例えばC#のページ)ウィンドウのテキストボックスで、私はそれを入力するタイプしかし、私がバックスペースまたはDeleteボタンを押すと、コードファイルからテキストが削除されます。ただし、アクティブなドキュメントタブがコードファイル(ソースコントロールエクスプローラなど)でない場合は、すべての編集がウィンドウのTextBoxに対して行われます。 – DrGriff

答えて

0

溶液は、上記の問題を解決し、それは完全な解決策ではありませんでした。私が見つけたのは、私のWPF Dialog Windowを閉じて、開いているソリューションでC#ウィンドウに入力できましたが、テキストを削除するためにDeleteまたはBack-spaceを使用できませんでした。

のMicrosoft Visual Studioの操作が ユーザー入力をブロックしていることを検出しました:私は、Visual Studioを閉じるしようとしたときにも、それは次のような警告が与えました。これは、アクティブなモーダルダイアログまたはユーザーの対話をブロックする必要があるタスク によって引き起こされる可能性があります。とにかく をシャットダウンしますか?

これを解決するために、以下の記事を参照してください:WPF modal window in Visual Studio Extension blocking input

1

VSは本当にあなたの窓を知っていない、とあなたはacceleratoryキーとコマンドルーティングの問題に実行されます。

これを行う適切な方法は、モーダルダイアログを実装することです(他のMicrosoft.VisualStudio.PlatformUI.DialogWinodowに関する記事を参照してください)。

またはツールウインドウを実装する必要があります。

はよろしくお願いいたします、上記の

+0

DialogWindowを使用すると、これが私のために修正されました。 – DrGriff

関連する問題