private void SetParameters(ref ControlMarket controlMarket, MarketViewModel marketViewModel) { controlMarket.DataContext = marketViewModel; }
/// <summary> /// /// </summary> /// <param name="controlMarket"></param> /// <param name="marketViewModel"></param> // TODO: separate parameters and bindings to other methods. Or/and remove settings public void BindToViewModel(ref ControlMarket controlMarket, MarketViewModel marketViewModel) { //========================================================================= MARKET VIEWMODEL BINDINGS ================================================================ //bind ControlStockInstance controlMarket.ControlStockInstance.DataContext = marketViewModel; controlMarket.ControlStockInstance.BindToSystem(/*(ITradeOperations)marketViewModel*,*/ _kernelTerminal, marketViewModel.TickerName, _kernelTerminal.TerminalConfig.MaxRepaintTimeMS); marketViewModel.ForceRepaintControlStock = controlMarket.ControlStockInstance.ForceRepaint; CStockProperties sp = marketViewModel.InstrumentConfig.MarketProperties.StockProperties; CDataBinder.BindFromList(marketViewModel, controlMarket.ControlStockInstance, sp); CDealsProperties dp = new CDealsProperties(); CDataBinder.BindFromList(marketViewModel, controlMarket.ControlDealsInstance, dp); CClusterProperties cp = marketViewModel.InstrumentConfig.MarketProperties.ClusterProperties; CDataBinder.BindFromList(marketViewModel, controlMarket.ControlClustersInstance, cp); //=========================================================================END MARKET VIEWMODEL BINDINGS ================================================================ controlMarket.ControlUserPosInstance.DataContext = marketViewModel.VMUserPos; // CUtil.SetBinding(marketViewModel, "ActualWidth", (FrameworkElement)controlMarket.ControlStockInstance, FrameworkElement.ActualWidthProperty); //specific binding CUserPosProperties upp = new CUserPosProperties(); //CDataBinder.BindFromList(marketViewModel.VMUserPos, controlMarket.ControlStockInstance.DOUSerPos, upp); CDataBinder.BindAllFromViewModel(marketViewModel.VMUserPos, controlMarket.ControlStockInstance.DOUSerPos); controlMarket.DataContext = marketViewModel; //========================================================================= BIND CONTROL MARKETS PROPERTIES ===================================================================== //trick: on binding value of controlMarket.StockNum(correct) overrides with value //of MarketViewModel (incorrect) so remember old value and set it after binding int stockNum = controlMarket.StockNum; CUtil.SetBinding(marketViewModel, "StockNum", controlMarket, ControlMarket.StockNumProperty, twoWayBinding: true); marketViewModel.StockNum = stockNum; CUtil.SetBinding(marketViewModel, "SelectionMode", controlMarket, ControlMarket.SelectionModeProperty, twoWayBinding: true); CUtil.SetBinding(marketViewModel, "IsModeKeyboardTrading", controlMarket, ControlMarket.IsModeKeyboardTradingProperty); //=========================================================================END BIND CONTROL MARKETS PROPERTIES ===================================================================== //======================================================================== BIND CLUSTER PROCESSOR =================================================================================== CUtil.SetBinding(marketViewModel.ClusterProcessor, "ClusterPriceAmount", controlMarket.ControlClustersInstance, ControlClusters.ClusterPriceAmountProperty); CUtil.SetBinding(marketViewModel.ClusterProcessor, "DisablePaintClusters", controlMarket.ControlClustersInstance, ControlClusters.DisablePaintClustersProperty); CUtil.SetBinding(marketViewModel.ClusterProcessor, "DisableRecalcClusters", controlMarket.ControlClustersInstance, ControlClusters.DisableRecalcClustersProperty); CUtil.SetBinding(marketViewModel.ClusterProcessor, "LstTimes", controlMarket.ControlClustersInstance, ControlClusters.LstTimesProperty); CUtil.SetBinding(marketViewModel.ClusterProcessor, "ClusterDate", controlMarket.ControlClustersInstance, ControlClusters.ClusterDateProperty); //=========================================================================END BIND CLUSTER PROCESSOR ========================================================================================================== // ========================================================================== TERMINAL VIEWMODEL BINDINGS =========================================================== CTerminalCommonProperties tcp = _kernelTerminal.TerminalConfig.TerminalProperties.TerminalCommonProperties; CDataBinder.BindFromList(_kernelTerminal.ViewModelDispatcher.TerminalViewModel, controlMarket, tcp); //TODO move line up TerminalViewModel termViewModel = _kernelTerminal.ViewModelDispatcher.TerminalViewModel; CDataBinder.BindFromList(termViewModel, controlMarket.ControlStockInstance, tcp); CDataBinder.BindFromList(termViewModel, controlMarket.ControlDealsInstance, tcp); CDataBinder.BindFromList(termViewModel, controlMarket.ControlClustersInstance, tcp); CTerminalStockProperties tsp = _kernelTerminal.TerminalConfig.TerminalProperties.TerminalStockProperties; CDataBinder.BindFromList(termViewModel, controlMarket.ControlStockInstance, tsp); CTerminalDealsProperties tdp = _kernelTerminal.TerminalConfig.TerminalProperties.TerminalDealsProperties; CDataBinder.BindFromList(termViewModel, controlMarket.ControlDealsInstance, tdp); CTerminalClustersProperties tclstp = _kernelTerminal.TerminalConfig.TerminalProperties.TerminalClustersProperties; CDataBinder.BindFromList(termViewModel, controlMarket.ControlClustersInstance, tclstp); //controlMarket.StockClock.DataContext = termViewModel; CUtil.SetBinding(termViewModel, "StockClock", controlMarket.StockClock, TextBlock.TextProperty); //controlMarket.StockClock. // ============ =============================================================END TERMINAL VIEWMODEL BINDINGS =========================================================== controlMarket.ControlClustersInstance.UpdateSettings(); controlMarket.ControlClustersInstance.InitFontSizeScaled(); // controlMarket.ControlDealsInstance.BindToSystem(_kernelTerminal /*, (ITradeOperations)marketViewModel*/); BindWorkAmount(controlMarket, marketViewModel); // EvntDispMarketViewModel e = new EvntDispMarketViewModel(marketViewModel); }
/// <summary> /// Deletes existing ControlMarcket and adds new ControlMarkets. /// Use for "connected" Instrument /// /// Calling from CKernelTerminal.EditConnectedStock /// </summary> public void ReplaceControlMarket(int stockNum, ref ControlMarket controlMarket, MarketViewModel marketViewModel) { DeleteControlMarket(stockNum); AddControlMarket(controlMarket, marketViewModel); }