Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#:浏览列表<;客户>;使用数据绑定文本框_C#_Wpf_Data Binding_Textbox - Fatal编程技术网

C#:浏览列表<;客户>;使用数据绑定文本框

C#:浏览列表<;客户>;使用数据绑定文本框,c#,wpf,data-binding,textbox,C#,Wpf,Data Binding,Textbox,经过几个小时的尝试,我对wpf复杂的数据绑定概念感到非常困惑:-/ 在两个文本框中显示我的业务对象属性(例如名称、街道…)的最简单方法是什么 目标是: 用户可以浏览记录(下一个、上一个) 双向绑定-文本框中的更改也应该更改基础属性的值 我已经知道如何将框绑定到属性,但是如何实现到下一个/上一个记录的导航 提前谢谢 您需要了解ICollectionView方法。 下面是一个工作示例: xaml: <Window.Resources> <x:Array x:Key="m

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

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

目标是:

  • 用户可以浏览记录(下一个、上一个)
  • 双向绑定-文本框中的更改也应该更改基础属性的值
我已经知道如何将框绑定到属性,但是如何实现到下一个/上一个记录的导航


提前谢谢

您需要了解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();
}