Wpf 如何将文本框文本绑定到';当前';收藏品
我是WPF的新手,整天都在努力解决这个问题: 我有一个包含六个公共属性的列表(阅读关于wpf仅绑定到公共属性的内容) 在我的主窗口中,我有两个控件;具有三列和三个文本框的数据网格。我希望将三个datagrid列数据绑定到列表的三个属性,并将列表的其余三个属性数据绑定到文本框(每个文本框一个属性)。datagrid数据绑定工作正常:Wpf 如何将文本框文本绑定到';当前';收藏品,wpf,data-binding,datagrid,Wpf,Data Binding,Datagrid,我是WPF的新手,整天都在努力解决这个问题: 我有一个包含六个公共属性的列表(阅读关于wpf仅绑定到公共属性的内容) 在我的主窗口中,我有两个控件;具有三列和三个文本框的数据网格。我希望将三个datagrid列数据绑定到列表的三个属性,并将列表的其余三个属性数据绑定到文本框(每个文本框一个属性)。datagrid数据绑定工作正常:myDataGrid.ItemsSource=myList; //具体的列绑定如预期的那样使用xaml Binding=“{Binding Title,Mode=Two
myDataGrid.ItemsSource=myList;
//具体的列绑定如预期的那样使用xaml
Binding=“{Binding Title,Mode=TwoWay}”
问题在于文本框。我希望文本框在基础列表中显示“当前项”,这意味着当用户选择不同的datagrid行时,文本框应该更改以显示“当前选定列表项”的数据绑定属性值。像这样简单地绑定texbox并不能完成任务:
Text="{Binding SomePropertyName}"
我已经读过关于使用CollectionViewSource以促进在xaml绑定中使用正斜杠的“当前项”指针的内容,但在这方面也没有运气
这很容易,但有一件事需要注意。默认情况下,您可以在
数据网格中选择多行,在这种情况下,文本框中只显示一个值。您可以通过在数据网格上设置SelectionMode=“Single”
来更改此设置
<StackPanel>
<DataGrid x:Name="PersonsGrid" ItemsSource="{Binding Persons}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="First name" Binding="{Binding FirstName}" />
<DataGridTextColumn Header="Last name" Binding="{Binding LastName}" />
<DataGridTextColumn Header="Age" Binding="{Binding Age}" />
</DataGrid.Columns>
</DataGrid>
<TextBox Text="{Binding SelectedItem.Address, ElementName=PersonsGrid}" />
</StackPanel>
这是因为在我的示例中,SelectedItem
的底层类型是Person
。谢谢Ondrej,非常感谢。也谢谢你的“选择模式”提示。@CoverG很高兴我能帮上忙。