C# 数据绑定,以便更改文本框值更新列表框

C# 数据绑定,以便更改文本框值更新列表框,c#,wpf,C#,Wpf,我正在尝试让数据更新在XAML中工作和从XAML中工作。也就是说,当我在XAML文本框中进行更改时,C#将收到新值,当我更改C#(通过单击按钮模拟)时,两个XAML文本框都会更改。但是,如果我对XAML文本框进行更改,它不会更新XAML项目列表。你知道我该怎么做吗 主窗口。xaml <Window x:Class="MySimpleProgram.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/

我正在尝试让数据更新在XAML中工作和从XAML中工作。也就是说,当我在XAML文本框中进行更改时,C#将收到新值,当我更改C#(通过单击按钮模拟)时,两个XAML文本框都会更改。但是,如果我对XAML文本框进行更改,它不会更新XAML项目列表。你知道我该怎么做吗

主窗口。xaml

<Window x:Class="MySimpleProgram.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="725"
        >
    <StackPanel Name="StackPanel1" Orientation="Horizontal">

        <TextBox Name="TextBox2" Text="{Binding Path=FirstName, Mode=TwoWay}" Height="23"/>

        <Button Name="Button1" Content="Change C# obj people[0]" Width="175" Height="20" Click="Button1_Click" />

        <ListBox Name="listPeople" DisplayMemberPath="FirstName"/>

    </StackPanel>
</Window>

在文本框绑定中将
更新资源记录器设置为
属性更改

默认值为
LostFocus
,即在失去焦点时进行源更新,但如果您在键入时需要更新,请将其设置为PropertyChanged。您将在列表框中看到更新

<TextBox Name="TextBox2"
         Text="{Binding Path=FirstName, Mode=TwoWay,
                        UpdateSourceTrigger=PropertyChanged}"
         Height="23"/>


为什么stackpanel的第一项有数据上下文?StackPanel1.DataContext=人[0];也许正因为如此,它不起作用。查看调试窗口以查看数据绑定错误…谢谢@bjoshi,我没有收到任何错误,我应该将其设置为什么?似乎您需要以不同的方式处理列表中的第一项,如果是我的问题,那么您可以将datacontext设置为第一项
<TextBox Name="TextBox2"
         Text="{Binding Path=FirstName, Mode=TwoWay,
                        UpdateSourceTrigger=PropertyChanged}"
         Height="23"/>