WPF,这个绑定源怎么是集合呢?
<Grid HorizontalAlignment="Left" Height="368" VerticalAlignment="Top" Width="596">
<TextBlock HorizontalAlignment="Left" Margin="84,34,0,0" TextWrapping="Wrap" Text="姓名:" VerticalAlignment="Top"/>
<TextBox HorizontalAlignment="Left" Height="23" Margin="123,30,0,0" TextWrapping="Wrap" Text="{Binding Path=Name}" VerticalAlignment="Top" Width="120"/>
<TextBlock HorizontalAlignment="Left" Margin="84,72,0,0" TextWrapping="Wrap" Text="年龄:" VerticalAlignment="Top"/>
<TextBox HorizontalAlignment="Left" Height="23" Margin="123,68,0,0" TextWrapping="Wrap" Text="{Binding Path=Age}" VerticalAlignment="Top" Width="120"/>
<TextBlock HorizontalAlignment="Left" Margin="84,111,0,0" TextWrapping="Wrap" Text="地址:" VerticalAlignment="Top"/>
<TextBox HorizontalAlignment="Left" Height="23" Margin="123,107,0,0" TextWrapping="Wrap" Text="{Binding Path=Adress}" VerticalAlignment="Top"
Width="120"/>
<Button Name="cmdprev" Content="<" HorizontalAlignment="Left" Margin="154,167,0,0" HorizontalContentAlignment="Center" VerticalAlignment="Top" Height="26" Click="cmdprev_Click"/>
<Button Name="cmdnext" Content=">" HorizontalAlignment="Left" Margin="197,167,0,0" HorizontalContentAlignment="Center" VerticalAlignment="Top" Height="26" Click="cmdnext_Click"/>
<TextBlock Name="textblock1" HorizontalAlignment="Left" Margin="173,172,0,0" TextWrapping="Wrap" Text="10" VerticalAlignment="Top"/>
</Grid>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
List<Person> list = new List<Person>()
{
new Person(){Name="熊俊",Adress="北京",Age=43},
new Person(){Name="张三",Adress="美国",Age=52},
new Person(){Name="李四",Adress="英国",Age=45},
};
this.DataContext = list;
view = (ListCollectionView)CollectionViewSource.GetDefaultView(this.DataContext);
view.CurrentChanged += view_CurrentChanged;
}
private ListCollectionView view;
void view_CurrentChanged(object sender, EventArgs e)
{
textblock1.Text = (view.CurrentPosition + 1).ToString() + "/" + view.Count.ToString();
cmdprev.IsEnabled = view.CurrentPosition > 0;
cmdnext.IsEnabled = view.CurrentPosition < view.Count - 1;
}
private void cmdprev_Click(object sender, RoutedEventArgs e)
{
view.MoveCurrentToPrevious();
}
private void cmdnext_Click(object sender, RoutedEventArgs e)
{
view.MoveCurrentToNext();
}
}
class Person
{
public string Name { get; set; }
public string Adress { get; set; }
public int Age { get; set; }
}
//
// 返回结果:
// 如果最终的 System.Windows.Data.CollectionView.CurrentItem 是视图中的项,则为 true;否则为 false。
public virtual bool MoveCurrentToNext();
//
// 摘要:
// 将视图中位于 System.Windows.Data.CollectionView.CurrentItem 之前的项设置为 System.Windows.Data.CollectionView.CurrentItem。
//
// 返回结果:
// 如果最终的 System.Windows.Data.CollectionView.CurrentItem 是视图中的项,则为 true;否则为 false。
public virtual bool MoveCurrentToPrevious();
[解决办法]
private void cmdprev_Click(object sender, RoutedEventArgs e)
{
view.MoveCurrentToPrevious();
Person per = view.CurrentItem as Person;//当前的项
}
private void cmdnext_Click(object sender, RoutedEventArgs e)
{
view.MoveCurrentToNext();
Person per = view.CurrentItem as Person;//当前的项
}
断点跟调试看看
[解决办法]
http://msdn.microsoft.com/zh-tw/beginner/system.windows.data.collectionview(zh-cn,VS.100).aspx
[解决办法]
http://blog.csdn.net/lhx527099095/article/details/8088870
看看这个吧