首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

关于Datagrid编辑取消重新绑定数据的有关问题?先多谢了

2013-10-27 
关于Datagrid编辑取消重新绑定数据的问题?请教各位,先谢谢了silverlight4 + sql2008 +.net2010movieDataGr

关于Datagrid编辑取消重新绑定数据的问题?请教各位,先谢谢了
silverlight4 + sql2008 +.net2010
movieDataGrid(DataGrid)和movieGrid(Grid)中的几个textbox间建立了双向绑定,当textbox中的数据修改后想取消修改,对movieDataGrid做了重新绑定数据,但未刷新为原始数据,求教正确的做法。

以下是代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using SLA20131023.Web;
using System.Windows.Data;
using System.ServiceModel.DomainServices.Client;

namespace SLA20131023
{
    public partial class MainPage : UserControl
    {
        private movieDomainContext movieCtx = new movieDomainContext();
        private LoadOperation<Movie> loadop;
   
        public MainPage()
        {
            InitializeComponent();
            loadop = this.movieCtx.Load(movieCtx.GetMovieQuery());
            loadop.Completed += new EventHandler(loadop_Completed);
            
            
        }

        void loadop_Completed(object sender, EventArgs e)
        {
            PagedCollectionView pager = new PagedCollectionView(loadop.Entities);
            pager.PageSize = 5;
            movieDataGrid.ItemsSource = pager;
            movieDataPager.Source = pager;

            
        }

        private void movieDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {               
                movieGrid.DataContext = movieDataGrid.SelectedItem;
        }

         private void btnCancel_Click(object sender, RoutedEventArgs e)  //取消操作
        {
            movieDataGrid.ItemsSource = null;
            movieDataGrid.ItemsSource = movieCtx.Movies;
            movieGrid.DataContext = null;
            movieGrid.DataContext = movieDataGrid.SelectedItem;
        }
    }
}

界面在此:
关于Datagrid编辑取消重新绑定数据的有关问题?先多谢了
[解决办法]

        private ObservableCollection<Movie> _BackUp;

        public MainWindow()
        {
            InitializeComponent();

            _BackUp = new ObservableCollection<Movie>();

            try {
                using (MovieEntities db = new MovieEntities()) {
                    var source = db.Movie.ToList();

                    //首次备份
                    _BackUp = MyCopy(source);



                    this.movieDataGrid.ItemsSource = source;
                }
            } catch (Exception ex) {
                MessageBox.Show(ex.ToString());
            }
        }

        //取消
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var temp = MyCopy(_BackUp);
            this.movieDataGrid.ItemsSource = temp;
        }

        private ObservableCollection<Movie> MyCopy(IEnumerable<Movie> source)
        {
            ObservableCollection<Movie> result = new ObservableCollection<Movie>();

            foreach (var obj in source) {
                Movie m = new Movie();
                m.id = obj.id;
                m.Name = obj.Name;
                m.Price = obj.Price;
                result.Add(m);
            }

            return result;
        }



关于Datagrid编辑取消重新绑定数据的有关问题?先多谢了

热点排行