我正在使用Expression Blend的「示例數據來自類」功能爲我的MVVM WPF項目中的ViewModels生成示例數據。雖然這在大多數情況下都能正常工作,但當我使用ContentPresenter呈現視圖模型時,它似乎失敗了,並且它應該使用的DataTemplate沒有Key,但只有一個DataType。 而不是使用模板呈現示例數據,它只是顯示具有前綴的類名稱。Expression Blend示例數據和數據模板
舉個例子,藉此視圖模型
public class TestClass
{
public string TestString { get; set; }
}
這個DataTemplate中
<DataTemplate DataType="{x:Type my:TestClass}" >
<TextBlock Text="{Binding TestString}" />
</DataTemplate>
這XAML
<ContentPresenter Content="{Binding MyPropertyContainingATestClass}" />
現在,在運行時,一切都在它應該的,但在設計過程中Blend顯示「_di0.MyNameSpace.TestClass」而不是TestString的內容。 我假設,這是因爲樣本數據函數生成的類,雖然具有相同的屬性等,但並不是真正需要的類型。有沒有辦法解決這個問題?我寧願使用這種方式來整合示例數據,而不是在我的實際視圖模型中包含所有這些無意義的數據。
感謝您的回覆。不過,鏈接的文章並未解決我的情況。我希望避免在Presenter上設置ContentTemplate。當我爲不同類型使用不同的DataTemplates時,ContentPresenter在運行時自動選擇正確的一個。請參閱http://msdn.microsoft.com/en-us/library/ms742521.aspx#Styling_DataType – Jens 2011-04-28 06:41:55