Действительно ли «{Binding Path =.}» И «{Binding}» равны

В моем проекте WPF у меня есть ListBox, который отображает элементы из List сборник. Я хотел сделать текст этих элементов редактируемым, поэтому я заключил каждый из них в ItemTemplate с TextBox (возможно, это не лучший способ, но я новичок в WPF). У меня возникли проблемы с простой привязкой свойства Text TextBoxes к значению каждого элемента. Наконец я наткнулся на пример, в котором в качестве свойства Path используется одна точка или точка ( {Binding Path =.} ):

<ListBox ItemsSource="{Binding ElementName=recipesListbox,Path=SelectedItem.Steps}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBox Text="{Binding Path=.}"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Однако я не понимаю, зачем просто использовать {Binding} не сработало.

Это вызвало "

[...] путь с точкой (.) Может использоваться для привязки к текущему источнику. Например, Text = "{Binding}" эквивалентно Text = "{Binding Path =.}"

Может ли кто-нибудь пролить свет на это двусмысленное поведение?

EDIT: Более того, кажется {Путь привязки =.} не обязательно дает двустороннюю привязку, поскольку изменение текста и перемещение фокуса не обновляет базовый источник (у того же источника также отображаются свойства, успешно измененные в элементе управления DataGrid). Я определенно что-то упустил.

46
задан mungflesh 8 September 2016 в 11:17
поделиться