В моем проекте 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). Я определенно что-то упустил.