數據綁定到 WPF 樹視圖中的 SelectedItem - Data binding to SelectedItem in a WPF Treeview

問題:

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章