Programım, listeye eklendiğinde en son oluşturulan nesneyi otomatik olarak seçmesini istiyorum.WPF'de veri bağlamayı kullanan TreeView'daki değerleri programlı olarak nasıl seçersiniz?
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;
}
kod hatayla sonuçlanır salt okunur olarak onRefresh
Maalesef SelectedItem değerinin değerini ayarlamak anlamına gelir: Burada çalışmıyor geçerli kod var.
Bu sorunu giderdiğimde, bir öğeyi programlı olarak seçmek için bulduğum tek çözüm, bir TreeViewItem üzerinde "IsSelected" özelliğini kullanmaktır; ancak bu, veriye bağlı olduğundan TreeViewItem nesnelerini kullanmaz veya tanımlamaz. İşte
durumunda ihtiyaç duyulduğunda, XAML kod şudur:<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>