在我的WPF項目中,我有一個ListBox來顯示List<string>
集合中的項目。我想使這些項目的文本可編輯,所以我用TextBox將它們中的每一個都包裝在ItemTemplate中(可能不是最好的方法,但我是WPF的新手)。我無法簡單地將TextBoxes的Text屬性綁定到每個項目的值。「{綁定路徑=。}」和「{綁定}」真的相等
<ListBox ItemsSource="{Binding ElementName=recipesListbox,Path=SelectedItem.Steps}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=.}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
但是爲什麼簡單地使用{Binding}
我不明白,沒有工作:我終於用一個點或期限path屬性({Binding Path=.}
)偶然發現了一個例子。
它提出了一個「雙向結合需要路徑或XPath」例外,因爲according to Microsoft:(。)
[...]可以使用路徑的期間以結合到當前資源。例如,文本=「{結合}」等同於文本=「{綁定路徑=}」
可能有人闡明這曖昧的行爲,光?
編輯:而且,似乎{Binding Path=.}
不一定給雙向綁定,作爲修改的文本和移動聚焦不更新基礎源(同源也具有屬性顯示,並且在數據網格成功修改控制)。我肯定在這裏錯過了一些東西。
這是一個錯字,現在已經修復。 – Fueled 2011-03-30 15:18:36
但雙向綁定STILL失敗。它拒絕保存更改。如果您有ObsColl並執行Path =。 Mode = TwoWay綁定,添加到集合工作正常。例如改變索引0處的數字。如果將數據網格綁定到它並指定數據網格列,它將拒絕使用Path =保存。 –
user99999991
2015-06-13 01:59:30