gpt4 book ai didi

C#:使用数据绑定(bind)文本框在 List 中导航

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:49 24 4
gpt4 key购买 nike

尝试了几个小时后,我对 wpf 复杂的数据绑定(bind)概念感到非常困惑:-/

在几个文本框中显示我的业务对象的属性(例如姓名、街道等)的最简单方法是什么?

目标是:

  • 用户可以浏览记录(下一个,上一个)
  • 双向绑定(bind) - 文本框中的更改也应更改基础属性的值。

我已经想出了如何将框绑定(bind)到属性,但是如何实现到下一条/上一条记录的导航?

提前致谢!

最佳答案

您需要查看 ICollectionView 方法。这是一个工作示例:

xaml:

<Window.Resources>
<x:Array x:Key="myPeoples" Type="{x:Type local:Person}">
<local:Person Name="Bob Marley" Address="123 street" />
<local:Person Name="Ted Nugent" Address="456 street" />
<local:Person Name="Ron Paul" Address="789 street" />
</x:Array>
</Window.Resources>
<DockPanel>
<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal">
<Button x:Name="cmdPrevious" Click="cmdPrevious_Click">Previous</Button>
<Button x:Name="cmdNext" Click="cmdNext_Click">Next</Button>
</StackPanel>
<Grid DockPanel.Dock="Top" DataContext="{StaticResource myPeoples}">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0" Text="{Binding Path=Name}" />
<TextBox Grid.Column="1" Text="{Binding Path=Address}" />
</Grid>
</DockPanel>

代码隐藏:

private void cmdPrevious_Click(object sender, RoutedEventArgs e)
{
Person[] peoples = this.FindResource("myPeoples") as Person[];
System.ComponentModel.ICollectionView collectionView = CollectionViewSource.GetDefaultView(peoples);
collectionView.MoveCurrentToPrevious();

}

private void cmdNext_Click(object sender, RoutedEventArgs e)
{
Person[] peoples = this.FindResource("myPeoples") as Person[];
System.ComponentModel.ICollectionView collectionView = CollectionViewSource.GetDefaultView(peoples);
collectionView.MoveCurrentToNext();
}

关于C#:使用数据绑定(bind)文本框在 List<Customer> 中导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6319648/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com