private void OnLoad(object sender, RoutedEventArgs e)
        {
            //pass the callback functions
            var newPlayerDistro = PlayerDistribution.GetInstance();

            getPlayers   = new GetPlayerDistro(newPlayerDistro.UpdateDistro);
            syncCounters = new SynchronizeCounters(newCounter.SyncCount);

            ManagedObject.cw_AssignCallbacks(getPlayers, syncCounters);

            //Binding test = new Binding("test");
            //test.Source = newPlayerDistro.PlayerDistro;
            //test.Mode = BindingMode.OneWay;
            //test.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            //text_Output_PlayerDistro.SetBinding(TextBox.TextProperty, test);

            //Binding pickle = new Binding("pickle");
            //pickle.Source = newPlayerDistro.PlayerDistro;
            //pickle.Mode = BindingMode.OneWay;
            //pickle.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;

            //test_pickle.DataContext = PlayerDistribution.GetDistro();


            //misc
            Binding counterBinding = new Binding("Count");

            counterBinding.Source = newCounter;
            counterBinding.Mode   = BindingMode.OneWay;
            counterBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            text_Output_Counter.SetBinding(TextBlock.TextProperty, counterBinding);

            //create c++ objects
            ManagedObject.cw_CreateCounter(1000, 10);
        }
        public static PlayerDistribution GetInstance()
        {
            lock (lockThis)
            {
                if (instance == null)
                {
                    instance = new PlayerDistribution();
                }
            }

            return(instance);
        }
 //constructor
 public ViewModel()
 {
     View_PD = PlayerDistribution.GetInstance();
 }