2012-06-27 4 views
0

У меня есть следующий сценарий:Скрыть элементы в WPF TreeView

У меня есть ViewModel с иерархическими элементами для отображения в TreeView. Все идет нормально. Теперь я хочу скрыть/удалить элементы из TreeView в соответствии с некоторыми свойствами, установленными в элементе ViewModel, например IsConfigurable или подобным. Если я отключил DataTemplate, элемент удаляется, но также и все дочерние элементы, чего я не хочу.

Возможно ли это?

здоровается,

Jürgen

+2

Вы хотите удалить родительский узел, но не детей? Но к чему будут привязаны дети? – Zabavsky

+0

Вы хотите скрыть заголовок родительского узла и сохранить его дочерние элементы под тем же пустым узлом? –

+0

Я вроде бы хочу «спрятать» узел и привязать его дочерние элементы к следующему родителю в иерархии ... но без вмешательства с самой коллекцией ... Как я уже сказал, я не знаю, возможно ли это вообще. – opiswahn

ответ

0

Это звучит несколько странно, но тем не менее ...

Вы должны учитывать, что ваше приложение должно оставаться тест и отладке.
Ваша модель содержит оригинальные данные (коллекции), как есть - здесь нет вмешательства. В вашем ViewModel, объекте, с которым вы привязываетесь, вы можете вычислить преобразование так, как вы хотите отобразить свою иерархию. Такой подход имеет то преимущество, что вы можете «легко» протестировать/отладить преобразование. Теперь привяжите TreeView к вычисленной иерархии без неясных экспериментов. Если свойства в вашей ViewModel (вы упомянули IsConfigurable или что-то еще) меняются, вы знаете, когда нужно переустанавливать связанную иерархию.