Beispiel #1
0
        protected override void OnUnloaded()
        {
            base.OnUnloaded();
            DataContext = null;
            viewModel   = null;

            if (Instance == this)
            {
                Instance = null;
            }
        }
Beispiel #2
0
        protected override void OnLoaded()
        {
            base.OnLoaded();
            DataContext     = viewModel = new ViewModelFishingCalculator();
            fishingGridView = FindName("FishingGridView") as GridView;

            foreach (var baitViewModel in EntityViewModelsManager.GetAllEntityViewModelsByType <IProtoItemFishingBait>())
            {
                var entityControl = new EntitySlotControl()
                {
                    DataContext = baitViewModel
                };
                var gridViewColumnHeader = new GridViewColumnHeader()
                {
                    Content = entityControl
                };
                var commandBinding = new Binding()
                {
                    Path = new PropertyPath("BaitSortDictionary[" + baitViewModel.Type + "]")
                };
                gridViewColumnHeader.SetBinding(GridViewColumnHeader.CommandProperty, commandBinding);
                var gridColumn = new GridViewColumn()
                {
                    Header = gridViewColumnHeader,
                    Width  = double.NaN
                };
                Binding ChanceBinding = new Binding()
                {
                    Path         = new PropertyPath("BaitWeightDictionary[" + baitViewModel.Type + "].Chance"),
                    StringFormat = "P0"
                };
                // Yep, it's error in VS2019, but it works for noesis.
                // https://www.noesisengine.com/bugs/view.php?id=1337
                gridColumn.DisplayMemberBinding =
                    (BindingExpression)ChanceBinding.ProvideValue(
                        new ProvideValueTarget
                {
                    TargetObject   = null,
                    TargetProperty = null
                });
                fishingGridView.Columns.Add(gridColumn);
            }
        }