using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Tango.Core.DI; using Tango.SharedUI; namespace Tango.AzureUtils.UI { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { private bool preventIsFreeChange; public MainWindow() { InitializeComponent(); ContentRendered += MainWindow_ContentRendered; } private void MainWindow_ContentRendered(object sender, EventArgs e) { TangoIOC.Default.GetAllInstancesByBase().ToList().ForEach(x => { x.OnApplicationReady(); x.PropertyChanged += ViewModel_PropertyChanged; }); } private void ViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (!preventIsFreeChange && e.PropertyName == nameof(ViewModel.IsFree)) { preventIsFreeChange = true; var viewModel = sender as AzureDashboardViewModel; TangoIOC.Default.GetAllInstancesByBase().Where(x => x != viewModel).ToList().ForEach(x => x.IsFree = viewModel.IsFree); preventIsFreeChange = false; } } } }