Vì vậy, về cơ bản, bạn cần phải tạo các mẫu dữ liệu lập trình ... Đó không phải là rất đơn giản, nhưng tôi nghĩ rằng bạn có thể đạt được điều đó với lớp FrameworkElementFactory
:
public void AddDataTemplateForView(Type viewType)
{
string viewModelTypeName = viewType.FullName + "Model";
Type viewModelType = Assembly.GetExecutingAssembly().GetType(viewModelTypeName);
DataTemplate template = new DataTemplate
{
DataType = viewModelType,
VisualTree = new FrameworkElementFactory(viewType)
};
this.Resources.Add(viewModelType, template);
}
tôi không kiểm tra nó , vì vậy một vài điều chỉnh có thể cần thiết ... Ví dụ tôi không chắc loại khóa tài nguyên nên là gì, vì nó thường được đặt ngầm khi bạn đặt DataType trong XAML
Nguồn
2010-01-10 02:34:54