1.前台界面
1 <StackPanel>
2 <telerik:RadGridView ItemsSource="{Binding EmailList}" AutoGenerateColumns="False" CanUserInsertRows="False" CanUserDeleteRows="False" IsReadOnly="True" EnableColumnVirtualization="False" EnableRowVirtualization="False" IsFilteringAllowed="False" ShowGroupPanel="False" CanUserReorderColumns="False" CanUserSortColumns="False">
3 <telerik:RadGridView.Columns>
4 <telerik:GridViewDataColumn Header="账号" DataMemberBinding="{Binding UserName}" Width="100" TextAlignment="Left" HeaderTextAlignment="Center"/>
5 <telerik:GridViewDataColumn Header="密码" DataMemberBinding="{Binding Password}" Width="100" TextAlignment="Left" HeaderTextAlignment="Center"/>
6 </telerik:RadGridView.Columns>
7 </telerik:RadGridView>
8 <telerik:RadDataPager x:Name="mailPager" ItemCount="{Binding ItemCount,Mode=TwoWay}" PageSize="20" PageIndex="{Binding PageIndex,Mode=TwoWay}" DisplayMode="FirstLastPreviousNext, Text"/>
9 </StackPanel>
对ItemCount和PageIndex属性指定绑定模式为双向绑定,确保数据能够返回到ViewModel当中。
2.后台代码
public NetsMail()
{
InitializeComponent();
this.DataContext = new NetsMailViewModel();
}
后台代码也不需要处理PageIndexChanged事件了。
3.ViewModel类
public class NetsMailViewModel : NotificationObject
{
[Import(typeof(INetsDesktopContract))]
public INetsDesktopContract NetsService { get; set; }
public NetsMailViewModel()
{
NetsService = App.Container.GetExportedValue<INetsDesktopContract>();
int count;
emailList = NetsService.GetEmailAccounts(0, 20, out count);
PageIndex = 0;
ItemCount = count;
}
private List<Email> emailList;
public List<Email> EmailList
{
get { return emailList; }
set { emailList = value; this.RaisePropertyChanged("EmailList"); }
}
private int pageIndex;
public int PageIndex
{
get { return pageIndex; }
set
{
int count;
pageIndex = value;
EmailList = NetsService.GetEmailAccounts(pageIndex, 20, out count);
ItemCount = count;
this.RaisePropertyChanged("PageIndex");
}
}
private int itemCount;
public int ItemCount
{
get { return itemCount; }
set { itemCount = value; this.RaisePropertyChanged("ItemCount"); }
}
}
大功告成,是不是看起来清爽多了。放一下最终效果图。
