Comment remplir treeview dans WPF dynamiquement
Treeview code xaml
<Window x:Class="WpfApplication1.orderdetail"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="Window1" Height="250" Width="450">
<Window.Resources>
<HierarchicalDataTemplate x:Key="NodeTemplate">
<TextBlock x:Name="text" Text="?" />
<HierarchicalDataTemplate.ItemsSource>
<Binding XPath="child::node()" />
</HierarchicalDataTemplate.ItemsSource>
<HierarchicalDataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=NodeType}" Value="Text">
<Setter TargetName="text" Property="Text" Value="{Binding Path=Value}"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=NodeType}" Value="Element">
<Setter TargetName="text" Property="Text" Value="{Binding Path=Name}"></Setter>
</DataTrigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>
<XmlDataProvider x:Key="xmlDataProvider"></XmlDataProvider>
</Window.Resources>
<Grid >
<TreeView Name="treeView1"
Background="AliceBlue"
ItemsSource="{Binding Source={StaticResource xmlDataProvider}, XPath=*}"
ItemTemplate= "{StaticResource NodeTemplate}"/>
</Grid>
</Window>
cs fichier
public partial class orderdetail : Window
{
public int OID { get; set; }
public orderdetail()
{
InitializeComponent();
}
private void Bindtree(int orderid)
{
string xml = "xml content will be here from api method";
XmlDataProvider dataProvider = this.FindResource("xmlDataProvider") as XmlDataProvider;
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
dataProvider.Document = doc;
}
}
Je ne veux pas lier treeview avec fenêtre InitializeComponent événement comme indiqué ci-dessous
public orderdetail()
{
InitializeComponent();
Bindtree(1);
}
Je vais passer dynamiquement la valeur de cette page pour lier treeview comme ci-dessous
orderdetail orderdetail = new orderdetail();
orderdetail.OID = Convert.ToInt32(1);
orderdetail.Show();
Est-il un événement/une méthode pour lier treeview dynamiquement?
Vous devez vous connecter pour publier un commentaire.
Avec WPF, vous devriez profiter de pattern MVVM. J'ai vu un très bon tutoriel sur l'utilisation de
TreeView
avec MVVM: http://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewModebon modèle
<Grid>
<TreeView x:Name="treeView" HorizontalAlignment="Left" Height="227" Margin="10,32,0,0" VerticalAlignment="Top" Width="178" />
</Grid>
et C #
Classe.GetDS(); est une méthode statique, j'ai pris à partir d'une autre classe, vous pouvez ajouter un jeu de données.