Fix menus. Fix Parameter sorting. Fix erroneous bindings. Fix issue with display of model name not showing an underscore in the name.

Label control was interpreting it as an accelerator.  Other code cleanup.
This commit is contained in:
2025-02-22 22:24:55 -05:00
parent d60b32e51d
commit acaea61f2c
16 changed files with 170 additions and 104 deletions

View File

@@ -57,6 +57,7 @@ namespace TradeBlotter.ViewModels
};
Dispatcher.CurrentDispatcher.BeginInvoke((Action)(() => { HeadlinesThreadProc(); }), DispatcherPriority.Normal);
}
private void DisplaySplashScreen()
{
if(System.Diagnostics.Debugger.IsAttached)return;
@@ -90,8 +91,6 @@ namespace TradeBlotter.ViewModels
{
workspaceViewModel.Dispose();
}
// PriceCache.GetInstance().Dispose();
// try{MGPriceCache.GetInstance().Dispose();}catch(Exception){;}
try{LocalPriceCache.GetInstance().Dispose();}catch(Exception){;}
try{GBPriceCache.GetInstance().Dispose();}catch(Exception){;}
try{PriceCache.GetInstance().Dispose();}catch(Exception){;}
@@ -123,7 +122,20 @@ namespace TradeBlotter.ViewModels
{
try
{
System.Windows.Controls.MenuItem menuItem=new System.Windows.Controls.MenuItem() { Header = viewModel.Title,Command = new RelayCommand(param=>{this.SetActiveWorkspace(viewModel);return;})};
System.Windows.Controls.MenuItem menuItem=new System.Windows.Controls.MenuItem()
{
Name = "MainWindowViewModelMenu",
Header = viewModel.Title,Command = new RelayCommand(param=>
{
this.SetActiveWorkspace(viewModel);
return;
}
),
HorizontalAlignment=HorizontalAlignment.Left,
VerticalAlignment=VerticalAlignment.Center,
VerticalContentAlignment=VerticalAlignment.Center,
HorizontalContentAlignment=HorizontalAlignment.Left
};
menuItem.FontWeight=FontWeights.DemiBold;
menuItem.FontStyle=FontStyles.Italic;
@@ -141,8 +153,12 @@ namespace TradeBlotter.ViewModels
multiBinding.Bindings.Add(headerBinding);
multiBinding.Converter=new NameMultiValueConverter();
BindingOperations.SetBinding(menuItem,System.Windows.Controls.MenuItem.HeaderProperty,multiBinding);
menuCollection.Add(menuItem);
if(!menuCollectionDictionary.ContainsKey(viewModel))menuCollectionDictionary.Add(viewModel,menuItem);
if(!menuCollectionDictionary.ContainsKey(viewModel))
{
menuCollectionDictionary.Add(viewModel,menuItem);
}
UIServices.SortMenuItems(menuCollection);
}
catch(Exception exception)
@@ -152,7 +168,6 @@ namespace TradeBlotter.ViewModels
finally
{
}
// base.OnPropertyChanged("MenuItems");
}
public void RemoveMenuItem(WorkspaceViewModel viewModel)
{
@@ -165,7 +180,6 @@ namespace TradeBlotter.ViewModels
// ****************************************************************************************************************************************************************
public void InstantiateWorkspace(SaveParameters saveParameters)
{
// WorkspacePersistenceHelper.Load(saveParameters, workspaces,InstantiateWorkspace);
WorkspaceViewModel workspaceViewModel=WorkspacePersistenceHelper.Load(saveParameters, workspaces, InstantiateWorkspace);
AddMenuItem(workspaceViewModel);
}
@@ -243,12 +257,20 @@ namespace TradeBlotter.ViewModels
private void OnWorkspacesChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.NewItems != null && e.NewItems.Count != 0)
{
foreach (WorkspaceViewModel workspace in e.NewItems)
{
workspace.RequestClose += this.OnWorkspaceRequestClose;
}
}
if (e.OldItems != null && e.OldItems.Count != 0)
{
foreach (WorkspaceViewModel workspace in e.OldItems)
{
workspace.RequestClose -= this.OnWorkspaceRequestClose;
}
}
}
private void OnWorkspaceRequestClose(object sender, EventArgs e)
{
@@ -259,7 +281,8 @@ namespace TradeBlotter.ViewModels
RemoveMenuItem(workspace);
if(null!=workspace.Referer)this.SetActiveWorkspace(workspace.Referer);
}
// *********************************************************************************************************************************************************
// *********************************************************************************************************************************************************
private void ShowAllTrades()
{
BlotterViewModel workspace = this.Workspaces.FirstOrDefault(vm => vm is BlotterViewModel) as BlotterViewModel;
@@ -288,7 +311,6 @@ namespace TradeBlotter.ViewModels
BlotterTradeModel trade = TradeRepository.GetInstance().GetTrade(tradeId);
if(null==trade)return;
trade=trade.Clone();
// workspace = new TradeEntryViewModel(trade, TradeRepository.GetInstance(),false);
workspace=new TradeEntryViewModel(trade,TradeRepository.GetInstance());
this.Workspaces.Add(workspace);
}