ドラッグアンドドロップ機能が必要なプロジェクトを現在作業中です。WPF:ビューモデルの内部クラスのブレークポイントを打つことができません
解決策を簡略化するために、GongSolutions.DragDropナゲットパッケージを使用しています。ライブラリを使用すると、xamlの "dd:DragDrop.DropHandler"属性を、IDropTargetインターフェイスを実装するクラスにバインドできます。
私のビューモデル内でこれを実装する内部クラスを作成し、そのようにバインドしていますが、機能は動作しますが、何らかの理由でこの内部クラス内のブレークポイントにヒットできません。私はビューモデル自体を継承していたときにすべてのブレークポイントにヒットできましたが、インナークラスを実装することにしました。
次は、多くのコードがあるとして簡単にするために取り外さ詳細とコードで、ブレークポイントがMainViewModel内部の作業ができますが、ModuleItemsListDropHandler以内にブレークポイントを設定するときには、すべての
public class MainViewModel
{
ObservableCollection<ModuleItem> _moduleItems;
public ObservableCollection<ModuleItem> ModuleItems
{
get { return _moduleItems; }
}
ObservableCollection<ModuleItem> _moduleTiles;
public ObservableCollection<ModuleItem> ModuleTiles
{
get { return _moduleTiles; }
}
//breakpoints work within this method
public void addToList(MouseEventArgs e)
{
//removed for simplicity
}
public MainViewModel()
{
//removed for simplicity
}
//Class that will not let me hit breakpoints that are set
class ModuleItemsListDropHandler : IDropTarget
{
void IDropTarget.DragOver(IDropInfo dropInfo)
{
//functionality during drag over
}
void IDropTarget.Drop(IDropInfo dropInfo)
{
//functionality for drop
}
}
}
にブレークポイントにヒットしません。私は現在VS 2015のコミュニティ版を使用しています
[この記事をお読みください。](https://stackoverflow.com/help/mcve)おそらくブレークポイントを設定しているメソッドは呼び出されません。どのようにXAMLの何かをModuleItemsListDropHandlerのインスタンスにバインドしていますか?それはプライベートクラスです。 'ModuleItems'と' ModuleTiles'プロパティを含めたのは注目に値しますが、あまりにも除外されていることは明らかです。 –
ありがとう、私はそれがプライベートクラスであることを知らなかった、デフォルトのドロップハンドラは私とほとんど同じですので、エラーを気付かないのは難しいです。私はクラスのインスタンスを保持するプロパティを作成して終了しました。それは公開されていてもクラスへのバインディングを許可していなかったからです。答えとして投稿すると最高のものとして選択します – BossmanT
恐ろしいそれは簡単でした。 –