C# 数据绑定,以便更改文本框值更新列表框
我正在尝试让数据更新在XAML中工作和从XAML中工作。也就是说,当我在XAML文本框中进行更改时,C#将收到新值,当我更改C#(通过单击按钮模拟)时,两个XAML文本框都会更改。但是,如果我对XAML文本框进行更改,它不会更新XAML项目列表。你知道我该怎么做吗 主窗口。xamlC# 数据绑定,以便更改文本框值更新列表框,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/
<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"/>