Visual Studio 2010を使用して、拡張機能を開発しています
ツールウィンドウのWPFTreeViewからDSLダイアグラムにドラッグアンドドロップする必要がありますが、e.data.GetDataを呼び出すと、値を取得できず、何が間違っているのかを知りたいです。
private void OnDragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(SqlServerTable)))
{
try
{
SqlServerTable table = (SqlServerTable)e.Data.GetData(typeof(SqlServerTable));
MessageBox.Show(table.Name);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
最初のifステートメントはTrueとして解決されます。これは、それがその種のオブジェクトであることを私に教えてくれます。これは、WPFツリービューにあるものです。
private void DataSourceExplorerTreeView_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
if (DataSourceExplorerTreeView.SelectedValue is TableViewModel)
{
Table table = ((TableViewModel)DataSourceExplorerTreeView.SelectedValue).Table;
DragDrop.DoDragDrop(DataSourceExplorerTreeView, table, DragDropEffects.Copy);
}
}
}
SqlServerTableはTableから継承します。ブレークポイントを挿入して呼び出すと
e.Data.GetFormats()
完全修飾TypeNameが表示されます