Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ';无法将窗口设置为样式';即使视图位于DataTemplate中,也会出错_C#_Wpf_Mvvm - Fatal编程技术网

C# ';无法将窗口设置为样式';即使视图位于DataTemplate中,也会出错

C# ';无法将窗口设置为样式';即使视图位于DataTemplate中,也会出错,c#,wpf,mvvm,C#,Wpf,Mvvm,我正在WPF中开发一个小的倒计时应用程序。我的主窗口应该只用于使用,但它似乎不起作用-它出现了无法将窗口放入样式的错误 在使用相同的方法之前,这从未发生过 我的主窗口: <Window x:Class="CountdownTimer.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/

我正在WPF中开发一个小的倒计时应用程序。我的主窗口应该只用于使用
,但它似乎不起作用-它出现了无法将窗口放入样式的错误

在使用相同的方法之前,这从未发生过

我的主窗口:

<Window x:Class="CountdownTimer.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:CountdownTimer"
    xmlns:viewmodels="clr-namespace:CountdownTimer.ViewModels"
    xmlns:views="clr-namespace:CountdownTimer.Views"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
<Window.DataContext>
    <viewmodels:ApplicationViewModel/>
</Window.DataContext>

<Window.Resources>
    <DataTemplate DataType="{x:Type viewmodels:CountdownViewModel}">
        <views:CountdownView/>
    </DataTemplate>
</Window.Resources>

<ContentPresenter Content="{Binding CurrentView}"/>


CountdownView是包含倒计时UI的视图。CountdownViewModel是控制倒计时系统的Viewmodel。ApplicationView将CurrentView定义为CountdownViewModel,并在其构造函数中将其设置为CountdownViewModel的实例

问题已经解决了。我使用的是实际的窗口,而不是用户控件。我设置了一个新的视图(用户控件)进行测试,它工作了,所以我仔细检查了我想要的视图,它实际上是一个窗口


对新视图使用用户控件而不是窗口

请提供完整的代码这不是重复的,我已经使用了另一篇文章的答案DataTemplate。这是一个不同的问题。而且完整的代码很长而且不重要。为了简洁起见,我把它保存在了重要的文件中。很抱歉,它确实是一个副本。我误读了另一篇文章,没有意识到使用usercontrol是该线程答案的一部分。