Ich möchte, dass mein Programm automatisch das zuletzt erstellte Objekt auswählt, wenn es der Liste hinzugefügt wird. Hier ist der aktuelle Code, der nicht funktioniert:Wie wählen Sie in TreeView programmatisch Werte aus, die Datenbindung in WPF verwenden?
public static void CreateResourceTree(TreeView selector,IEnumerable<Resource> resources,Resource onRefresh=null)
{
ActiveResources.Clear();
ActiveResources.AddRange(resources.OrderByDescending(x=>x.FetchMeta("Priority").IntValue)
.ThenBy(x=>x.Label)
.ToList());
selector.Items.Refresh();
selector.SelectedItem=onRefresh;
}
Der Code soll den Wert auf den Wert von onRefresh
Leider SelectedItem als Readonly gesetzt, was zu einem Fehler führt.
Wenn ich das Problem googled, ist die einzige Lösung, die ich gefunden, ein Element programmatisch zu wählen, ist die "IsSelected" -Eigenschaft auf einem TreeViewItem, aber da dies Daten gebunden ist, verwendet oder nicht TreeViewItem Objekte. Hier
ist der XAML-Code, falls es benötigt wird:
<TreeView ItemsSource="{Binding ResourceList}" Grid.Column="0" Grid.Row="3" x:Name="ResourcesTree" SelectedItemChanged="ResourcesTree_OnSelectedItemChanged" Margin="0,4,0,0">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type xmlclass:Resource}" ItemsSource="{Binding Children}">
<ContentPresenter Content="{Binding Output}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>