通过绑定触发更新

时间:2012-08-16 08:22:15

标签: c# .net wpf

尝试找出一种快速的方法让列表框显示当前值,如下所示

listbox is bound to a ObservableCollection<TypeA>

和TypeA.ToString()返回TypeA.Name

并选择列表框中的项目会在某些文本框中显示TypeA字段以进行编辑

更新TypeA.Name不会更新列表框中显示的值吗?

如何通知列表框以获取当前值?

在文本框中更改值时更新列表框会更好!!

感谢

2 个答案:

答案 0 :(得分:0)

您可以在列表框和文本框之间进行元素绑定。

<TextBox Name="txtName"/>
<ListBoxItem SelectedItem = "{Binding ElementName=txtName, Path=Text}"/>

答案 1 :(得分:0)

您可以通过将文本框绑定到列表框中的选定项目来完成此操作,如下所示:

<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}" />

当您更改文本框中的文本时,列表框中的所选项目将更新。