在MainWindow.xaml
我有一个userControl <control:IBDataGrid></control:IBDataGrid>
;我让IBDataGrid
来处理自己的逻辑。
public IBDataGrid()
{
InitializeComponent();
Ib = new IBQuoteSource();
_vm = new WatchListViewModel(Ib);
WatchList.DataContext = _vm;
_vm.Subscribe();
}
现在问题是MainWindow
在我调试或启动程序之前开始加载 IBDataGrid
但是我希望它在我点击开始时无需调试。 [现在股票报价在运行程序之前开始更新]。
有没有办法解决这个问题,还是我需要重新设计逻辑?
UPDATE1 使用Mike的答案确实在启动程序之前停止更新引号,但是在启动程序后,Quotes停止更新..
if (!DesignerProperties.GetIsInDesignMode(this))
{
Ib = new IBQuoteSource();
_vm = new WatchListViewModel(Ib);
WatchList.DataContext = _vm;
_vm.Subscribe();
}
答案 0 :(得分:1)
最简单的解决方案可能是在设计器中运行时禁用订阅:
public IBDataGrid()
{
InitializeComponent();
Ib = new IBQuoteSource();
_vm = new WatchListViewModel(Ib);
WatchList.DataContext = _vm;
if (!DesignerProperties.GetIsInDesignMode(this))
_vm.Subscribe();
}