TreeView 컨트롤에 노드를 표시하고 있으며 제네릭으로 올바르게 표시되도록 데이터를 가져 오는 데 문제가 있습니다. 특히 WPF에서 데이터 템플릿을 찾는 데 문제가있는 것으로 보입니다. x : Type이 NodeViewModel`1
으로 선언되었고 실제 유형은 NodeViewModel< INode>
이기 때문에 추측 할 수 있습니다. 그러나 NodeViewModel< INode>
을 사용하려고하면 XAML이 컴파일되지 않습니다.DataTemplate에서 GenericType을 인식하는 방법
다음
<HierarchicalDataTemplate
ItemsSource="{Binding Path=Children}"
DataType="{x:Type viewModels:NodeViewModel`1}">
<TextBlock Text="{Binding Path=Node.NodeDescription}" />
</HierarchicalDataTemplate>
가 NodeViewModel 같은 선언 :
public class NodeViewModel<T> where T : INode
{
public T Node { get {...} set {...} }
}
노드 인터페이스 같은 같습니다
public interface INode
{
string NodeDescription { get; }
}
정확히 내가하려는 일입니다. 아베. 나는 그것이 두려웠다. 이 코드는 훨씬 간단하게 시작되었습니다. 새로운 요구 사항이있을 때마다 계속해서 눈을 뜨고 있습니다. 나는 당신이 RAD (Requirements As-you-go Development)를하고 있다고 말할 수 있다고 생각합니다. 감사. 당신이 제안한대로 시도해 볼게요. –