UserControl1.xaml の相互作用ロジック
Inheritance: System.Windows.Window
        public CharacterSateliteViewModel(SateliteViewer viewer, CharacterModel model)
        {
            _view = viewer;
            _parent = model;

            _view.Closed += _view_Closed;
            _parent.PropertyChanged += _parent_PropertyChanged;
            _view.OnJumpEvent += _view_OnJumpEvent;
            EventAggregator.DeleteIMarkableHandler += OnIMarkableDeleted;
        }
        public static SateliteViewer Generate(ItemModel model)
        {
            var viewer = new SateliteViewer(Application.Current.MainWindow);
            var viewModel = new ItemSateliteViewModel(viewer, model);

            viewer.LeftButtonLabel = "ステータス";
            viewer.TopButtonLabel = "自由記入欄";
            viewer.RightButtonLabel = "未使用";
            viewer.BottomButtonLabel = "未使用";

            viewer.RelatedModel = model;
            viewer.TopLeftGridElement = new StatusGrid() { DataContext = viewModel };
            viewer.TopRightGridElement = new RemarkGrid() { DataContext = viewModel };
            viewer.BottomRightGridElement = new NotUsedGrid() { DataContext = viewModel };
            viewer.BottomLeftGridElement = new NotUsedGrid() { DataContext = viewModel };

            return viewer;
        }
        public static SateliteViewer Generate(StoryFrameModel model)
        {
            var viewer = new SateliteViewer(Application.Current.MainWindow);
            var viewModel = new StoryFrameSateliteViewModel(viewer, model);

            viewer.LeftButtonLabel = "ステータス";
            viewer.TopButtonLabel = "登場人物";
            viewer.RightButtonLabel = "登場アイテム";
            viewer.BottomButtonLabel = "自由記入欄";

            viewer.RelatedModel = model;
            viewer.TopLeftGridElement = new StatusGrid() { DataContext = viewModel };
            viewer.TopRightGridElement = new CharactersGrid() { DataContext = viewModel };
            viewer.BottomRightGridElement = new ItemsGrid() { DataContext = viewModel };
            viewer.BottomLeftGridElement = new RemarkGrid() { DataContext = viewModel };

            return viewer;
        }