看起來對於TreeView
,屬性SelectedItem
不能用於綁定。我想了解這可以如何與MSDN文檔一致。有關TreeView.SelectedItem的可綁定性的MSDN文檔
在https://msdn.microsoft.com/en-us/library/system.windows.controls.treeview.selecteditem.aspx它說,有關Treeview.SelectedItem
屬性:
[BindableAttribute(true)] public object SelectedItem { get; }
然後,這個https://msdn.microsoft.com/en-us/library/system.componentmodel.bindableattribute.aspx下的 「備註」 說:
如果屬性已經被打上了
BindableAttribute
集到true
, 那麼應該爲該提出物業更改通知財產。這意味着如果Bindable
屬性是Yes
,那麼支持雙向數據綁定 。如果Bindable
爲No
,您仍然可以將 綁定到該屬性,但它不應顯示在要綁定的默認屬性 屬性中,因爲它可能會或可能不會引發屬性 更改通知。
我把它讀作「如果你的酒店BindableAttribute
設置爲true
,可以綁定到它,無論哪個值設置爲Bindable
」。 Bindable
沒有列在SelectedItem
的[...]
部分中,我假設這意味着Bindable
設置爲No
。
因此,根據文件,綁定到SelectedItem
應該工作,對吧?還是我誤解了一些東西?如果是,什麼?
如果我寫
<TreeView SelectedItem="{Binding foo, Mode=OneWayToSource}" />
它說: 「該SelectedItem
屬性不具有可訪問的制定者。」 (原文:「死SelectedItem
-Eigenschaft」verfügt尤伯杯KEIN二傳手-OBJEKT,奧夫DAS zugegriffen werden卡恩。)
但現在我再次感到困惑 - 我告訴它只能使用參見OneWayToSource binding from readonly property in XAML,Pushing read-only GUI properties back into ViewModelOneWayToSource
結合,這意味着的SelectedItem
變化反映在foo
,但不是相反。所以爲什麼它甚至關心二傳手?