2015-06-20 89 views
0

我想创建自定义窗口并使用Catel在没有IUIvisualizerService的情况下显示它。Catel自定义视图创建

问题是:当我创建一个窗口时,将ViewModel绑定到它,好像View对属性的更改没有反应。

我做了以下内容:

var photo = new Photo(); 
NewPhotoWindow newPhotoWindow = new NewPhotoWindow(); 
var viewModel = new NewPhotoWindowViewModel(photo); 
newPhotoWindow.DataContext = viewModel; 

newPhotoWindow.ShowDialog(); 

有没有办法通过某种ViewLocator创造呢?

我试过TypeFactory,但是这不允许我将照片作为ViewModel的模型。

回答

0

您不应该手动在Catel中创建ViewModel创建。这一切都是为你自动完成的。

这应该是足够的:

uiVisualizerService.ShowDialog<NewPhotoWindow>(); 

这自动地将:

  1. 解决属于NewPhotoWindow(NewPhotoWindowViewModel或NewPhotoViewModel)虚拟机。
  2. 使用IViewModelFactory
  3. 创建窗口实例化的虚拟机和虚拟机设置为它
+0

是的,我知道,但它有一个限制。它不允许我存储窗口引用,我需要它。 – Tomasz

+0

然后,您可能需要实现您自己的IUIVisualizerService(或从现有派生并重写正确的方法),以便您可以对需要使用它的窗口执行某些操作。 为什么你需要访问窗口? –

+0

我想在某些操作上展示它(带到前面) – Tomasz