我正在使用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