Есть ли причина не делать это декларативно?Вы можете легко создать шаблон для своих предметов:
<DataTemplate x:Key="ArrayListTemplate">
<TreeView>
<TreeView.ItemsSource>
<Binding Source="[{Binding Key}]"/>
</TreeView.ItemsSource>
<TreeView.DisplayMemberPath>
<Binding Source="[{Binding Key}][0].Text"/>
</TreeView.DisplayMemberPath>
</TreeView>
</DataTemplate>
Признаюсь, я не знаю наверняка, что привязки, определенные выше, будут работать.Но если предположить, что это так, единственная другая проблема, с которой вы столкнулись, - это применение этого шаблона только к элементам, чей Value
равен ArrayList
.Вы должны быть в состоянии написать селектор шаблона, который делает это, и назначить его на GridViewColumn.CellTemplateSelector
.