/ / WPF Treeview - Синхронизиране с ViewModel? - wpf, treeview, синхронизация, списък

WPF Treeview - синхронизиране с ViewModel? wpf, treeview, синхронизация, списък

Имам прозорец, който съдържа решетка с две колони. първата колона се попълва с TreeView. втората колона се попълва с ListBox.

И двата контрола са свързани с CollectionViewобгръща моите данни - ObserveableCollection от типа на моя клас данни. ListBox е настроен да се синхронизира с изгледа (SyncToCurrentItem и т.н.). Също така внедрих персонализиран ListBoxItem, който извиква BringIntoView и фокусиране върху новоизбрания елемент.

Въпреки това, Treeview не поддържа такива операции срещу CollectionView.

Има ли начин да се постигне това? Това, което искам да направя, е да избера нещо в дървото и да го избера в ListBox.

Благодаря предварително за всяка помощ.

Отговори:

4 за отговор № 1

За да поддържате ListBox в синхрон с TreeView,Вие трябва да го свържете с SelectedItem към избрания елемент TreeView. Режимът на свързване трябва да бъде OneWay, тъй като TreeView SelectedItem е само за четене.

<TreeView Name="CategoryTreeView" DockPanel.Dock="Top" MinHeight="50" MinWidth="100">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="x:Type local:Category"
ItemsSource="{Binding Path=Children}">
<TextBlock Text="{Binding Path=Name}"></TextBlock>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
<ListBox Name="CategoryList" SelectedItem="{Binding ElementName=CategoryTreeView, Path=SelectedItem, Mode=OneWay}"/>

Създадох основен клас категория с име иДеца (Списък). Това е малко повече работа, за да актуализирате TreeView с ListBox, но е възможно. Кажете ми, ако се опитвате да отидете в двете посоки.