Catel自定义视图创建

时间:2015-06-20 10:18:39

标签: c# wpf 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的模型。

1 个答案:

答案 0 :(得分:0)

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

这应该足够了:

uiVisualizerService.ShowDialog<NewPhotoWindow>();

这将自动:

  1. 解析属于NewPhotoWindow的VM(NewPhotoWindowViewModel或NewPhotoViewModel)。
  2. 使用IViewModelFactory
  3. 实例化VM
  4. 创建窗口并将vm设置为