Я показываю узлы в элементе управления TreeView, и у меня возникают проблемы с правильной отображением данных с помощью дженериков. Более конкретно, кажется, что WPF испытывает трудности с поиском шаблона данных. Я предполагаю, что это потому, что x: Type объявлен как NodeViewModel`1
, а фактический тип - NodeViewModel< INode>
. Тем не менее, XAML не будет компилироваться, если я попытаюсь использовать NodeViewModel< INode>
.Как получить DataTemplate для распознавания GenericType
У меня HierachialDataTemplate, который выглядит следующим образом:
<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 (Требования As-you-go Development). Благодарю. Я попробую, как вы предложили. –