试图找出一种让列表框显示当前值的快速方法,如下所示
listbox is bound to a ObservableCollection<TypeA>
和 TypeA.ToString() 返回 TypeA.Name
并在列表框中选择一个项目会在某些文本框中显示 TypeA 字段以进行编辑
更新 TypeA.Name 不会更新列表框中显示的值?
如何通知列表框以获取当前值?
在文本框中的值发生变化时更新列表框会更好!
谢谢
您可以在列表框和文本框之间进行元素绑定。
<TextBox Name="txtName"/>
<ListBoxItem SelectedItem = "{Binding ElementName=txtName, Path=Text}"/>
您可以通过将文本框绑定到列表框中的选定项目来执行此操作,如下所示:
<ListBox Name="listBox">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<TextBox Name="tbName" Text="{Binding ElementName=listBox, Path=SelectedItem.Name, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Name="tbField2" Text="{Binding ElementName=listBox, Path=SelectedItem.Field2, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Name="tbField3" Text="{Binding ElementName=listBox, Path=SelectedItem.Field3, UpdateSourceTrigger=PropertyChanged}" />
当您更改文本框中的文本时,列表框中的选定项目将更新。