DataSourceProviderService,在设计时EnvDTE.Project 级别提供对数据源的访问。

定义:

[Guid("ABE5C1F0-C96E-40c4-A22D-4A5CEC899BDC")]
public abstract class DataSourceProviderService
{
// Methods
protected DataSourceProviderService();
public abstract object AddDataSourceInstance(IDesignerHost host, DataSourceDescriptor dataSourceDescriptor);
public abstract DataSourceGroupCollection GetDataSources();
public abstract DataSourceGroup InvokeAddNewDataSource(IWin32Window parentWindow, FormStartPosition startPosition);
public abstract bool InvokeConfigureDataSource(IWin32Window parentWindow, FormStartPosition startPosition, DataSourceDescriptor dataSourceDescriptor);
public abstract void NotifyDataSourceComponentAdded(object dsc);

// Properties
public abstract bool SupportsAddNewDataSource { get; }
public abstract bool SupportsConfigureDataSource { get; }

}

所属程序集:System.Design.dll

该服务的使用方法:

代码来源:System.Design.dll

来自类:internal class DesignBindingPicker;


 

  
this.dspSvc = (DataSourceProviderService) this.serviceProvider.GetService(typeof(DataSourceProviderService));

private void addNewCtrl_Click(object sender, LinkLabelLinkClickedEventArgs e)
{
this.dspSvc = (DataSourceProviderService) this.serviceProvider.GetService(typeof(DataSourceProviderService)); if ((this.dspSvc != null) && this.dspSvc.SupportsAddNewDataSource)
{
DataSourceGroup group = this.dspSvc.InvokeAddNewDataSource(this, FormStartPosition.CenterScreen);
if ((group != null) && (group.DataSources.Count != 0))
{
DataSourceDescriptor dataSource = group.DataSources[0];
this.FillTree(new DesignBinding(dataSource, ""));
if (this.selectedNode != null)
{
int count = this.selectedNode.Nodes.Count;
if (this.context.Instance is BindingSource)
{
this.treeViewCtrl.SetSelectedItem(this.selectedNode);
}
if ((count == 0) || (this.context.Instance is BindingSource))
{
this.treeViewCtrl.SetSelectedItem(this.selectedNode);
}
else if (count == 1)
{
this.treeViewCtrl.SetSelectedItem(this.selectedNode.Nodes[0]);
}
else
{
this.ShowSelectedNode();
this.selectedNode.Expand();
this.selectedNode = null;
this.UpdateHelpText(null);
}
}
}
}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值