我有以下代码
<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>
出现以下错误
Can't put a window in a Style
我找到了 this回答。
我已经在主窗口中完成了所有必需的 UI 编码,但是无法将其与相应的 ViewModel 连接(将其放置在另一个项目中,我正在使用它的引用)。
所以我的问题是,“为什么我不能这样做?”、“我如何将 Window 控件与 ViewModel 连接起来?”、“我应该改用 UserControl 吗?”
最佳答案
您正试图将一个窗口放在另一个窗口中,但这是不可能的。连接 View 和 ViewModel 要简单得多,但取决于您的项目结构。
您可以在 Window
构造函数中设置它,例如:
public partial class MainWindow : Window
{
public MainWindow ()
{
this.DataContext = new MainWindowViewModel();
InitializeComponent();
}
}
您尝试采用的方法不适用于 Windows
,只有当您将 ViewModel 本身放入 XAML 时才有用。
关于c# - 连接窗口与 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14744044/