在关注XAML代码时,我收到一些文件丢失的警告。
<Application.Resources>
<!--Global View Model Locator-->
<viewModel:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
</Application.Resources>
警告基于以下代码:
if (!File.Exists(filename))
{
throw new FileNotFoundException(string.Format("The specified file {0} is missing.", filename));
}
确实缺少此文件,但在运行时它出现在正确的位置。 问题是我如何禁用此警告?为什么我首先在xaml中看到类似的东西?
感谢。
答案 0 :(得分:2)
我猜你正在做的事情发生在你的ViewModelLocator
的构造函数中,所以你应该把这个代码移到其他地方或者(因为你可能正在使用MVVM Light)你可以检查你是否处于设计模式并且只是从构造函数返回或者不进行文件检查(因为您可能需要为设计模式初始化其他内容)。
public class ViewModelLocator
{
/// <summary>
/// Initializes a new instance of the ViewModelLocator class.
/// </summary>
public ViewModelLocator()
{
if (ViewModelBase.IsInDesignModeStatic)
return;
...
}
...
}
要回答您的问题,为什么会发生这种情况,因为代码运行的位置与您的构建文件夹不同,只是为了给您“预览”。
设计时间也有一个非常有限的功能集,例如据我所知,你不能在任何在设计时执行的东西中使用线程,所以也许文件IO也不起作用,但即使它在哪里它也不会无论如何都能找到你的文件。
答案 1 :(得分:0)
这可能是因为你试图获得/加载/使用#34;缺失&#34;您的ViewModelLocator
构造函数中的文件或在XAML中附加它时可以调用的任何其他方法。也许你需要检查异常中断...它应该打破c#代码而不是xaml。