我有以下代码
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="UI/ResourceDirectory.xaml"/>
</ResourceDictionary.MergedDictionaries>
<DataTemplate DataType="{x:Type vm:MainWindowViewModel}">
<local:MainWindow></local:MainWindow>
</DataTemplate>
</ResourceDictionary>
</Window.Resources>
它正在发出以下错误
无法在样式中放置窗口
我找到了this回答。
我已在主窗口中完成了所有必需的UI编码,但无法将其与相应的ViewModel连接(将其放置在另一个项目中并使用其参考)。
所以我的问题是,“为什么我不能这样做?”,“如何将Window控件与ViewModel连接?”,“我应该使用UserControl吗?”
答案 0 :(得分:0)
你试图将一个窗口放在另一个窗口内,这是不可能的。连接View和ViewModel要简单得多,但取决于您的项目结构。
您可以在Window
构造函数中设置它,例如:
public partial class MainWindow : Window
{
public MainWindow ()
{
this.DataContext = new MainWindowViewModel();
InitializeComponent();
}
}
您尝试采用的方法对Windows
不起作用,仅在将ViewModel自身放入XAML时才有用。
答案 1 :(得分:0)
要将视图模型连接到视图,您必须在xaml代码中执行以下操作。
<Window.DataContext>
<viewModel:MainWindowViewModel/>
</Window.DataContext>
viewModel是命名空间。
xmlns:viewModel="clr-namespace:TestProject.ViewModel"
您不应该在视图的代码隐藏中设置viewmodel!