在尝试了几个小时之后,我对wpf :-/的复杂数据绑定概念感到非常困惑。
显示业务对象属性的最简单方法是什么(例如名称、街道.)在几个文本框里?
目标是:
previous)
)。
我已经知道了如何将这些框绑定到属性,但是如何实现导航到下一个/上一个记录?
提前感谢!
发布于 2011-06-12 07:25:47
您将需要查看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();
}https://stackoverflow.com/questions/6319648
复制相似问题