問題:
How can I retrieve the item that is selected in a WPF-treeview?如何檢索在 WPF-treeview 中選擇的項目? I want to do this in XAML, because I want to bind it.我想在 XAML 中執行此操作,因爲我想綁定它。
You might think that it is SelectedItem
but apparently that does not exist is readonly and therefore unusable.您可能認爲它是SelectedItem
但顯然它不存在是隻讀的,因此無法使用。
This is what I want to do:這就是我想要做的:
<TreeView ItemsSource="{Binding Path=Model.Clusters}"
ItemTemplate="{StaticResource ClusterTemplate}"
SelectedItem="{Binding Path=Model.SelectedCluster}" />
I want to bind the SelectedItem
to a property on my Model.我想將SelectedItem
綁定到我的模型上的一個屬性。
But this gives me the error:但這給了我錯誤:
'SelectedItem' property is read-only and cannot be set from markup. 'SelectedItem' 屬性是隻讀的,不能從標記中設置。
Edit: Ok, this is the way that I solved this:編輯:好的,這是我解決這個問題的方法:
<TreeView
ItemsSource="{Binding Path=Model.Clusters}"
ItemTemplate="{StaticResource HoofdCLusterTemplate}"
SelectedItemChanged="TreeView_OnSelectedItemChanged" />
and in the codebehindfile of my xaml:在我的 xaml 的代碼隱藏文件中:
private void TreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
Model.SelectedCluster = (Cluster)e.NewValue;
}
解決方案:
參考一: https://stackoom.com/question/4C9g參考二: Data binding to SelectedItem in a WPF Treeview