在設計時,我有一些虛假錯誤,似乎是由於WPF無法在不實際運行它們的情況下估計事物的價值。這當然在運行時完美無瑕。 問題是如何擺脫這些錯誤?WPF - 如何擺脫錯誤的設計時間錯誤
下面是一個例子:
我在一個類中有以下兩種:
public static bool IsHubb {get; set;}
public static bool IsEC { get { return !IsHubb; } }
下轉換器工作得很好:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (HubbCostOfferPage.IsHubb && HubbCostOfferPage.CarObj.TestApprovedDate == null)
return Visibility.Visible;
else
return Visibility.Collapsed;
}
的不過以下(雖然很相似)給出了「未設置對象實例的對象引用」。錯誤,這意味着我可以在設計時沒有看到註釋掉的靜態資源定義的唯一事情是一個很大的錯誤:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (HubbCostOfferPage.IsEC == true && HubbCostOfferPage.CarObj.TestApprovedDate == null)
return Visibility.Visible;
else
return Visibility.Collapsed;
}
如果我HubbCostOfferPage.IsHubb取代HubbCostOfferPage.IsEC,一切工作正常,所以我知道,有問題在哪裏。
如果將HubbCostOfferPage.IsEC替換爲轉換器中的!HubbCostOfferPage.IsHubb,則會出現同樣的問題。設計師似乎抱怨,因爲它無法評估「!」在設計時間。
任何想法如何使這項工作在設計時間以及?
你能澄清你在運行時拋出的異常嗎?我很好奇爲什麼你認爲檢查null會在運行時導致異常。 –
@Paul:在設計時,一些對象可能爲空,因爲Factory或其他東西沒有被調用,所以屬性爲null。我認爲這沒關係。但是在運行時,屬性不能爲空。所以我相信這不是負責檢查這個的轉換器。但是當然可能有一些情況下,對象可以爲空,並且轉換器不會拋出異常。 – WaltiD
偉大的解決方案。謝謝你太多了! :-) – Keren