我在xaml.cs页面中从VSPackage1Package访问了一个Interface属性(StatusBar),但它总是返回null。而字符串属性返回预期值。 请帮助我在我的xaml.cs页面上访问StatusBar属性。
VSPackage1Package:
using Microsoft.VisualStudio.Shell.Interop;
public sealed class VSPackage1Package : Package
{
private IVsStatusbar bar;
public IVsStatusbar StatusBar
{
get
{
if (bar == null)
{
bar = GetService(typeof(SVsStatusbar)) as IVsStatusbar;
}
return bar;
}
}
public VSPackage1Package()
{
}
}
xaml.cs:
public partial class TestWindowControl : UserControl
{
public void button_Click(object sender, RoutedEventArgs e)
{
VSPackage1Package package = new VSPackage1Package();
package.StatusBar.SetText("my message");//Here Statusbar is null
}
}
答案 0 :(得分:0)
我可以使用GetGlobalService
访问xaml.cs页面中的状态栏<强> VSPackage1Package:强>
public static IVsStatusbar GetActiveStatusBar()
{
return Package.GetGlobalService(typeof(SVsStatusbar)) as IVsStatusbar;
}
<强> xaml.cs:强>
var statusBar = VSPackage1Package.GetActiveStatusBar();
statusBar.SetText("My message");