2015-05-05 26 views
0

在以下XAML代碼中,我收到警告,指出某些文件丟失。如何禁用不相關的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中首先看到類似這樣的東西?

謝謝。

回答

2

我猜你在做的任何事情發生在ViewModelLocator的構造函數中,所以你應該把這個代碼移到其他地方或者(因爲你可能使用MVVM Light),你可以檢查你是否處於設計模式並返回從構造函數或不做文件檢查(因爲也許你需要爲你的設計模式初始化其他東西)。

public class ViewModelLocator 
{ 
    /// <summary> 
    /// Initializes a new instance of the ViewModelLocator class. 
    /// </summary> 
    public ViewModelLocator() 
    { 
     if (ViewModelBase.IsInDesignModeStatic) 
      return; 
     ... 
    } 

    ... 
} 

要回答你的問題,爲什麼出現這種情況擺在首位,因爲代碼在不同的地方比你的build文件夾只給你一個「預覽」運行。

設計時間也有一個非常有限的功能集,例如據我所知,你不能在設計時使用線程執行任何事情,所以也許文件IO也不能工作,但即使它在哪裏它wouldn無論如何都無法找到你的文件。

0

這可能是因爲您試圖在您的構造函數或其他任何可以在XAML中附加調用的方法中獲取/加載/使用該「缺少」文件。也許你需要檢查異常中斷...它應該在不在xaml中的c#代碼中破解。