コード例 #1
0
ファイル: WindowManager.cs プロジェクト: henjuv/Mg2
 private object LocateView(Screen model)
 {
     var viewModelName = model.GetType().Name;
     var viewName = viewModelName.Substring(0, viewModelName.LastIndexOf("Model", StringComparison.Ordinal));
     var type = GetType().Assembly.GetTypes().First(n => n.Name == viewName);
     return Activator.CreateInstance(type);
 }
コード例 #2
0
ファイル: WindowManager.cs プロジェクト: henjuv/Mg2
        private Window CreateWindow(Screen rootModel, bool isDialog)
        {
            var view = LocateView(rootModel);
            BindModel(rootModel, view);

            var window = EnsureWindow(view, isDialog);

            var binding = new Binding("DisplayName") { Mode = BindingMode.TwoWay };
            window.SetBinding(Window.TitleProperty, binding);

            return window;
        }
コード例 #3
0
ファイル: WindowManager.cs プロジェクト: henjuv/Mg2
 public void ShowWindow(Screen screen)
 {
     CreateWindow(screen, false).Show();
 }
コード例 #4
0
ファイル: WindowManager.cs プロジェクト: henjuv/Mg2
 private static void BindModel(Screen model, object view)
 {
     var viewAsControl = (Control) view;
     viewAsControl.DataContext = model;
     model.AttachView(view);
 }
コード例 #5
0
ファイル: WindowManager.cs プロジェクト: henjuv/Mg2
 public bool? ShowDialog(Screen screen)
 {
     return CreateWindow(screen, true).ShowDialog();
 }