J'essaie de lier plusieurs TreeViews à la même ItemSource qui contient TreeViewItems. Chaque fois que je fais cela, le dernier à charger est le seul qui affiche les éléments. (Donc, si j'ai trois arborescences déclaré dans un ordre spécifique, la dernière déclarée sera le seul à afficher les éléments.)Liaison de plusieurs TreeViews à la même ItemSource
Ce projet WPF exemple avec les paramètres par défaut j'ai créé pour montrer:
XAML:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TreeView x:Name="TreeOne" ItemsSource="{Binding TreeItems}" HorizontalAlignment="Left" Height="300" Margin="10,10,0,0" VerticalAlignment="Top" Width="238"/>
<TreeView x:Name="TreeTwo" ItemsSource="{Binding TreeItems}" HorizontalAlignment="Left" Height="300" Margin="10,10,0,0" VerticalAlignment="Top" Width="239" Grid.Column="1"/>
</Grid>
</Window>
code Derrière: (j'utilise MVVM dans le vrai projet, mais cela a le même bug)
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Controls;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
TreeItems = new ObservableCollection<TreeViewItem>() { new TreeViewItem() { Header = "First item" } };
InitializeComponent();
}
public ObservableCollection<TreeViewItem> TreeItems { get; set; }
}
}
picture of the output of the above code
Si je commente le deuxième arbre, le premier s'affichera correctement.
Merci. C'est certainement la bonne réponse. Malheureusement, mon objet de données complexe principal étend un contrôle qui, rétrospectivement, était une mauvaise décision, mais il est profondément ancré maintenant. Je pense que je vais devoir corriger cela rapidement en dupliquant le code pour qu'il applique les mêmes modifications à chaque arbre avec une source de données séparée. :( – autogenerated7331